aboutsummaryrefslogtreecommitdiff
path: root/elf/rtld.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-07-02 22:18:48 +0000
committerRoland McGrath <roland@gnu.org>1996-07-02 22:18:48 +0000
commitd746b89c44dea52eb329ff9417b34ad157d7e50e (patch)
tree5651b645ea8074f0d37d2c27c46d1badc6b34da7 /elf/rtld.c
parent66da789f8dfa5e42ff4aa5d1ca4dab93ed0beb4f (diff)
downloadglibc-d746b89c44dea52eb329ff9417b34ad157d7e50e.zip
glibc-d746b89c44dea52eb329ff9417b34ad157d7e50e.tar.gz
glibc-d746b89c44dea52eb329ff9417b34ad157d7e50e.tar.bz2
Tue Jul 2 10:44:37 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* elf/rtld.c (dl_main): Set _dl_rtld_map's DT_DEBUG location too.
Diffstat (limited to 'elf/rtld.c')
-rw-r--r--elf/rtld.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/elf/rtld.c b/elf/rtld.c
index 1cabe82..8ec637f 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -368,6 +368,11 @@ of this helper program; chances are you did not intend to run this program.\n",
with the run-time address of the r_debug structure */
l->l_info[DT_DEBUG]->d_un.d_ptr = (ElfW(Addr)) r;
+ /* Fill in the pointer in the dynamic linker's own dynamic section, in
+ case you run gdb on the dynamic linker directly. */
+ if (_dl_rtld_map.l_info[DT_DEBUG])
+ _dl_rtld_map.l_info[DT_DEBUG]->d_un.d_ptr = (ElfW(Addr)) r;
+
/* Notify the debugger that all objects are now mapped in. */
r->r_state = RT_ADD;
_dl_debug_state ();