aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--elf/dl-fini.c3
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 7d702f6e2a..60b95c6f5c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,8 +11,9 @@
2002-11-05 Ulrich Drepper <drepper@redhat.com>
- * iconv/gconv_dl.c (do_release_all): Call __libc_dlclose as many
- times as we opened the module.
+ * elf/dl-fini.c (_dl_fini): Correct the increment of l_opencount
+ which happens at the beginning so that we can unload modules in
+ __libc_freeres.
2002-11-06 Kaz Kojima <kkojima@rr.iij4u.or.jp>
diff --git a/elf/dl-fini.c b/elf/dl-fini.c
index 4e2e66e841..e7a00e513e 100644
--- a/elf/dl-fini.c
+++ b/elf/dl-fini.c
@@ -169,6 +169,9 @@ _dl_fini (void)
if (l->l_info[DT_FINI] != NULL)
((fini_t) DL_DT_FINI_ADDRESS (l, l->l_addr + l->l_info[DT_FINI]->d_un.d_ptr)) ();
}
+
+ /* Correct the previous increment. */
+ --l->l_opencount;
}
if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_STATISTICS, 0))