about summary refs log tree commit diff
path: root/elf/rtld.c
diff options
context:
space:
mode:
Diffstat (limited to 'elf/rtld.c')
-rw-r--r--elf/rtld.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/elf/rtld.c b/elf/rtld.c
index 2cb11bb059..565f9caaaa 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -77,6 +77,7 @@ struct link_map *_dl_profile_map;
 int _dl_debug_libs;
 int _dl_debug_impcalls;
 int _dl_debug_bindings;
+int _dl_debug_symbols;
 
 /* Set nonzero during loading and initialization of executable and
    libraries, cleared before the executable's entry point runs.  This
@@ -937,7 +938,7 @@ process_dl_debug (char *dl_debug)
 	      any_debug = 1;
 	      dl_debug += 8;
 	    }
-	  if (strncmp (dl_debug, "libs", 4) == 0
+	  else if (strncmp (dl_debug, "libs", 4) == 0
 	      && (issep (dl_debug[4]) || dl_debug[4] == '\0'))
 	    {
 	      _dl_debug_libs = 1;
@@ -954,12 +955,21 @@ Valid options for the LD_DEBUG environment variable are:\n\
   bindings  display information about symbol binding\n\
   help      display this help message and exit\n\
   libs      display library search paths\n\
+  symbols   display symbol table processing\n\
 \n\
 To direct the debugging output into a file instead of standard output\n\
 a filename can be specified using the LD_DEBUG_OUTPUT environment variable.\n",
 				  NULL);
 	      _exit (0);
 	    }
+	  else if (strncmp (dl_debug, "symbols", 7) == 0
+	      && (issep (dl_debug[7]) || dl_debug[7] == '\0'))
+	    {
+	      _dl_debug_symbols = 1;
+	      _dl_debug_impcalls = 1;
+	      any_debug = 1;
+	      dl_debug += 7;
+	    }
 	  else
 	    /* Skip everything until next separator.  */
 	    do