about summary refs log tree commit diff
path: root/elf/rtld.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-03-10 18:04:16 +0000
committerUlrich Drepper <drepper@redhat.com>1998-03-10 18:04:16 +0000
commit8193034b1d0e3760dadb06b891a22cd4631c675a (patch)
treee1e1a283d6e2e1d9c10f2fed93d354d29a485a3a /elf/rtld.c
parent62c349c632dca31385304164ffcd6ca7b9f360cc (diff)
downloadglibc-8193034b1d0e3760dadb06b891a22cd4631c675a.tar.gz
glibc-8193034b1d0e3760dadb06b891a22cd4631c675a.tar.xz
glibc-8193034b1d0e3760dadb06b891a22cd4631c675a.zip
Update.
1998-03-10 17:54  Ulrich Drepper  <drepper@cygnus.com>

	* libc.map: Add _dl_debug_message.
	* elf/dl-misc.c: Make _dl_debug_message a function.  Print the PID
	before every line.
	* elf/fini.c: Correctly use new _dl_debug_message function.
	* elf/init.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* sysdeps/unix/sysv/linux/libc-start.c: Likewise.
	* elf/dl-load.c: Likewise.  Add more debugging prints.
	* elf/dl-reloc.c: Likewise.
	* elf/dl-version.c: Likewise.
	* elf/dl-support.c: Add variables for debugging.
	* elf/rtld.c: Likewise.  Recognize new debug options.
	* elf/link.h: Declare new variables.

	* elf/dl-deps.c (_dl_map_object_deps): Little optimizations.

	* sysdeps/unix/sysv/linux/sys/quota.h: Extract information from
	kernel headers.  Patch by a sun <asun@saul7.u.washington.edu>.

1998-03-11 00:16  Tim Waugh  <tim@cyberelk.demon.co.uk>

	* posix/wordexp-test.c (command_line_test): New function to allow
	testing of specific cases from the command-line.

1998-03-10  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-init.c (_dl_init_next): Print nicer messages.
	* elf/dl-fini.c (_dl_fini): Likewise.
	* sysdeps/unix/sysv/linux/libc-start.c (__libc_start_main): Likewise.
Diffstat (limited to 'elf/rtld.c')
-rw-r--r--elf/rtld.c46
1 files changed, 38 insertions, 8 deletions
diff --git a/elf/rtld.c b/elf/rtld.c
index 2db6cf3613..8b72d07883 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -78,6 +78,9 @@ int _dl_debug_libs;
 int _dl_debug_impcalls;
 int _dl_debug_bindings;
 int _dl_debug_symbols;
+int _dl_debug_versions;
+int _dl_debug_reloc;
+int _dl_debug_files;
 
 /* Set nonzero during loading and initialization of executable and
    libraries, cleared before the executable's entry point runs.  This
@@ -927,21 +930,21 @@ process_dl_debug (char *dl_debug)
 	++dl_debug;
       if (*dl_debug != '\0')
 	{
-	  if (strncmp (dl_debug, "bindings", 8) == 0
-	      && (issep (dl_debug[8]) || dl_debug[8] == '\0'))
+	  if (strncmp (dl_debug, "files", 5) == 0
+	      && (issep (dl_debug[5]) || dl_debug[5] == '\0'))
 	    {
-	      _dl_debug_bindings = 1;
+	      _dl_debug_files = 1;
 	      _dl_debug_impcalls = 1;
 	      any_debug = 1;
-	      dl_debug += 8;
+	      dl_debug += 5;
 	    }
-	  else if (strncmp (dl_debug, "libs", 4) == 0
-	      && (issep (dl_debug[4]) || dl_debug[4] == '\0'))
+	  else if (strncmp (dl_debug, "bindings", 8) == 0
+	      && (issep (dl_debug[8]) || dl_debug[8] == '\0'))
 	    {
-	      _dl_debug_libs = 1;
+	      _dl_debug_bindings = 1;
 	      _dl_debug_impcalls = 1;
 	      any_debug = 1;
-	      dl_debug += 4;
+	      dl_debug += 8;
 	    }
 	  else if (strncmp (dl_debug, "help", 4) == 0
 		   && (issep (dl_debug[4]) || dl_debug[4] == '\0'))
@@ -950,15 +953,34 @@ process_dl_debug (char *dl_debug)
 Valid options for the LD_DEBUG environment variable are:\n\
 \n\
   bindings  display information about symbol binding\n\
+  files     display processing of files and libraries\n\
   help      display this help message and exit\n\
   libs      display library search paths\n\
+  reloc     display relocation processing\n\
   symbols   display symbol table processing\n\
+  versions  display version dependencies\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, "libs", 4) == 0
+	      && (issep (dl_debug[4]) || dl_debug[4] == '\0'))
+	    {
+	      _dl_debug_libs = 1;
+	      _dl_debug_impcalls = 1;
+	      any_debug = 1;
+	      dl_debug += 4;
+	    }
+	  else if (strncmp (dl_debug, "reloc", 4) == 0
+	      && (issep (dl_debug[5]) || dl_debug[5] == '\0'))
+	    {
+	      _dl_debug_reloc = 1;
+	      _dl_debug_impcalls = 1;
+	      any_debug = 1;
+	      dl_debug += 5;
+	    }
 	  else if (strncmp (dl_debug, "symbols", 7) == 0
 	      && (issep (dl_debug[7]) || dl_debug[7] == '\0'))
 	    {
@@ -967,6 +989,14 @@ a filename can be specified using the LD_DEBUG_OUTPUT environment variable.\n",
 	      any_debug = 1;
 	      dl_debug += 7;
 	    }
+	  else if (strncmp (dl_debug, "versions", 8) == 0
+	      && (issep (dl_debug[8]) || dl_debug[8] == '\0'))
+	    {
+	      _dl_debug_versions = 1;
+	      _dl_debug_impcalls = 1;
+	      any_debug = 1;
+	      dl_debug += 8;
+	    }
 	  else
 	    {
 	      /* Display a warning and skip everything until next