diff options
Diffstat (limited to 'ldso/libdl/libdl.c')
-rw-r--r-- | ldso/libdl/libdl.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c index 213eba49f..ac0acd504 100644 --- a/ldso/libdl/libdl.c +++ b/ldso/libdl/libdl.c @@ -849,7 +849,12 @@ static int do_dlclose(void *vhandle, int need_fini) DL_CALL_FUNC_AT_ADDR (dl_elf_fini, tpnt->loadaddr, (int (*)(void))); } } + } + } + for (j = 0; j < handle->init_fini.nlist; ++j) { + tpnt = handle->init_fini.init_fini[j]; + if (tpnt->usage_count == 0) { _dl_if_debug_print("unmapping: %s\n", tpnt->libname); end = 0; for (i = 0, ppnt = tpnt->ppnt; |