summaryrefslogtreecommitdiff
path: root/ldso/ldso/ldso.c
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>2004-08-13 13:56:25 +0000
committerJoakim Tjernlund <joakim.tjernlund@transmode.se>2004-08-13 13:56:25 +0000
commit9f47eaf3223c17a99cc88aea3287697e2635681f (patch)
treebb46e11388b630617ed8a7f42d4338ad32697c38 /ldso/ldso/ldso.c
parent5e383688dc73a3b18d41eabe7714539e39bea752 (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.c5
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__)