diff options
author | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2004-08-13 13:56:25 +0000 |
---|---|---|
committer | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2004-08-13 13:56:25 +0000 |
commit | 9f47eaf3223c17a99cc88aea3287697e2635681f (patch) | |
tree | bb46e11388b630617ed8a7f42d4338ad32697c38 /ldso/ldso/ldso.c | |
parent | 5e383688dc73a3b18d41eabe7714539e39bea752 (diff) |
Fix usage_count in ldso/libdl.
Don't' use atexit in libdl.
Make destrutor in libdl actually run and to dlclose all
dlopened libs.
Remove dlclosed libs from the _dl_symbol_tables list.
Diffstat (limited to 'ldso/ldso/ldso.c')
-rw-r--r-- | ldso/ldso/ldso.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c index 70e801909..4256189e7 100644 --- a/ldso/ldso/ldso.c +++ b/ldso/ldso/ldso.c @@ -183,7 +183,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, struct elf_resolve *app_tpnt continue; #endif /* OK, we have what we need - slip this one into the list. */ - app_tpnt = _dl_add_elf_hash_table("", (char *)app_tpnt->loadaddr, + app_tpnt = _dl_add_elf_hash_table(_dl_progname, (char *)app_tpnt->loadaddr, app_tpnt->dynamic_info, ppnt->p_vaddr + app_tpnt->loadaddr, ppnt->p_filesz); _dl_loaded_modules->libtype = elf_executable; _dl_loaded_modules->ppnt = (ElfW(Phdr) *) auxvt[AT_PHDR].a_un.a_ptr; @@ -364,6 +364,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, struct elf_resolve *app_tpnt { if ((tpnt1 = _dl_check_if_named_library_is_loaded(str, trace_loaded_objects))) { + tpnt1->usage_count++; continue; } #if defined (__SUPPORT_LD_DEBUG__) @@ -448,6 +449,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, struct elf_resolve *app_tpnt if ((tpnt1 = _dl_check_if_named_library_is_loaded(cp2, trace_loaded_objects))) { + tpnt1->usage_count++; continue; } #if defined (__SUPPORT_LD_DEBUG__) @@ -503,6 +505,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, struct elf_resolve *app_tpnt if ((tpnt1 = _dl_check_if_named_library_is_loaded(name, trace_loaded_objects))) { + tpnt1->usage_count++; continue; } #if defined (__SUPPORT_LD_DEBUG__) |