From 0c367d923b58c146c30acc560c18097bacae91c4 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 9 Mar 1998 18:30:58 +0000 Subject: Update. 1998-03-09 18:21 Ulrich Drepper * elf/dl-support.c (_dl_debug_bindings): Add definition. * elf/rtld.c (_dl_debug_bindings): Add definition. (process_dl_debug): Recognize bindings option. Update help message. * elf/link.h (struct link_map): Add l_versyms member. (_dl_debug_bindings): Add declaration. * elf/version.c (_dl_check_map_versions): Initialize l_versyms. * elf/dl-object.c (_dl_new_object): Don't initialize l_rpath_dirs and l_reloc_result. * elf/dl-lookup.c (do_lookup): Define verstab from l_versyms. (sym_val): Remove a member, add m as link_map. (do_lookup): Return result appropriately. (_dl_lookup_symbol): If _dl_debug_bindings is defined print message. Call do_lookup correctly. (_dl_lookup_symbol_skip): Likewise. (_dl_lookup_versioned_symbol): Likewise. (_dl_lookup_versioned_symbol_skip): Likewise. --- elf/rtld.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'elf/rtld.c') diff --git a/elf/rtld.c b/elf/rtld.c index c466fa28c9..2cb11bb059 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -76,6 +76,7 @@ const char *_dl_profile_output; struct link_map *_dl_profile_map; int _dl_debug_libs; int _dl_debug_impcalls; +int _dl_debug_bindings; /* Set nonzero during loading and initialization of executable and libraries, cleared before the executable's entry point runs. This @@ -928,6 +929,14 @@ 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')) + { + _dl_debug_bindings = 1; + _dl_debug_impcalls = 1; + any_debug = 1; + dl_debug += 8; + } if (strncmp (dl_debug, "libs", 4) == 0 && (issep (dl_debug[4]) || dl_debug[4] == '\0')) { @@ -942,8 +951,13 @@ process_dl_debug (char *dl_debug) _dl_sysdep_message ("\ Valid options for the LD_DEBUG environment variable are:\n\ \n\ - help display this help message and exit - libs display library search paths\n", NULL); + bindings display information about symbol binding\n\ + help display this help message and exit\n\ + libs display library search paths\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 -- cgit 1.4.1