From 8193034b1d0e3760dadb06b891a22cd4631c675a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 10 Mar 1998 18:04:16 +0000 Subject: Update. 1998-03-10 17:54 Ulrich Drepper * 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 . 1998-03-11 00:16 Tim Waugh * posix/wordexp-test.c (command_line_test): New function to allow testing of specific cases from the command-line. 1998-03-10 Ulrich Drepper * 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. --- elf/rtld.c | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) (limited to 'elf/rtld.c') 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 -- cgit v1.2.3