aboutsummaryrefslogtreecommitdiff
path: root/elf/rtld.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-03-09 18:30:58 +0000
committerUlrich Drepper <drepper@redhat.com>1998-03-09 18:30:58 +0000
commit0c367d923b58c146c30acc560c18097bacae91c4 (patch)
treec5691885d2c97733e1dbb294f919245084495466 /elf/rtld.c
parent19212f875d0dd43a8925c68e7b806561b4cabbb9 (diff)
downloadglibc-0c367d923b58c146c30acc560c18097bacae91c4.tar
glibc-0c367d923b58c146c30acc560c18097bacae91c4.tar.gz
glibc-0c367d923b58c146c30acc560c18097bacae91c4.tar.bz2
glibc-0c367d923b58c146c30acc560c18097bacae91c4.zip
Update.
1998-03-09 18:21 Ulrich Drepper <drepper@cygnus.com> * 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.
Diffstat (limited to 'elf/rtld.c')
-rw-r--r--elf/rtld.c18
1 files changed, 16 insertions, 2 deletions
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