* elf/dl-close.c (_dl_close): Print debug message just before
authorUlrich Drepper <drepper@redhat.com>
Mon, 7 Mar 2005 07:04:35 +0000 (07:04 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 7 Mar 2005 07:04:35 +0000 (07:04 +0000)
destroying a link map.

ChangeLog
elf/dl-close.c

index 5c74e28..e914f7e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2005-03-06  Ulrich Drepper  <drepper@redhat.com>
 
+       * elf/dl-close.c (_dl_close): Print debug message just before
+       destroying a link map.
+
        * elf/do-lookup.h (do_lookup_x): Add namespace info to debug output.
        * elf/dl-version.c (match_symbol): Likewise.
 
index 7ad486a..0176e84 100644 (file)
@@ -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.  */