summaryrefslogtreecommitdiff
path: root/elf/dl-close.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-03-07 07:04:35 +0000
committerUlrich Drepper <drepper@redhat.com>2005-03-07 07:04:35 +0000
commitac53c9c64be744177d4005eea1dede0b82397f55 (patch)
tree2cd5d64dfa890dd517f745a066464b7f7afea5b6 /elf/dl-close.c
parentb6cc1a62178d0a8442da2ed464244a9f5f60e2f1 (diff)
* elf/dl-close.c (_dl_close): Print debug message just before
destroying a link map.
Diffstat (limited to 'elf/dl-close.c')
-rw-r--r--elf/dl-close.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/elf/dl-close.c b/elf/dl-close.c
index 7ad486a5a2..0176e8449e 100644
--- a/elf/dl-close.c
+++ b/elf/dl-close.c
@@ -279,15 +279,16 @@ _dl_close (void *_map)
if (new_opencount[i] == 0 && imap->l_type == lt_loaded
&& (imap->l_flags_1 & DF_1_NODELETE) == 0)
{
- /* When debugging print a message first. */
- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS, 0))
- _dl_debug_printf ("\ncalling fini: %s [%lu]\n\n",
- imap->l_name, ns);
-
/* Call its termination function. Do not do it for
half-cooked objects. */
if (imap->l_init_called)
{
+ /* When debugging print a message first. */
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS,
+ 0))
+ _dl_debug_printf ("\ncalling fini: %s [%lu]\n\n",
+ imap->l_name, ns);
+
if (imap->l_info[DT_FINI_ARRAY] != NULL)
{
ElfW(Addr) *array =
@@ -555,6 +556,11 @@ _dl_close (void *_map)
reldeps = newrel;
}
+ /* Print debugging message. */
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
+ _dl_debug_printf ("\nfile=%s [%lu]; destroying link map\n",
+ imap->l_name, imap->l_ns);
+
/* This name always is allocated. */
free (imap->l_name);
/* Remove the list with all the names of the shared object. */