about summary refs log tree commit diff
path: root/elf/tst-dlmopen4.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2022-01-29 10:56:45 -0800
committerH.J. Lu <hjl.tools@gmail.com>2022-01-31 07:05:48 -0800
commit3fb18fd80c5900cc82748f3320b30516c57d24da (patch)
tree3b31e62ff66968dc1b17408ceb4a601a0a6eefc5 /elf/tst-dlmopen4.c
parent829ea0caca35800c4ffbebced7c3271293811144 (diff)
downloadglibc-3fb18fd80c5900cc82748f3320b30516c57d24da.tar.gz
glibc-3fb18fd80c5900cc82748f3320b30516c57d24da.tar.xz
glibc-3fb18fd80c5900cc82748f3320b30516c57d24da.zip
elf: Add <dl-r_debug.h>
Add <dl-r_debug.h> to get the adddress of the r_debug structure after
relocation and its offset before relocation from the PT_DYNAMIC segment
to support DT_DEBUG, DT_MIPS_RLD_MAP_REL and DT_MIPS_RLD_MAP.

Co-developed-by: Xi Ruoyao <xry111@mengyan1223.wang>
Diffstat (limited to 'elf/tst-dlmopen4.c')
-rw-r--r--elf/tst-dlmopen4.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/elf/tst-dlmopen4.c b/elf/tst-dlmopen4.c
index d8bcf7e9d5..8456f89053 100644
--- a/elf/tst-dlmopen4.c
+++ b/elf/tst-dlmopen4.c
@@ -25,16 +25,9 @@
 #include <support/check.h>
 #include <support/test-driver.h>
 
-#ifndef ELF_MACHINE_GET_R_DEBUG
-# define ELF_MACHINE_GET_R_DEBUG(d) \
-    (__extension__ ({ 						\
-      struct r_debug_extended *debug;				\
-      if ((d)->d_tag == DT_DEBUG)				\
-	debug = (struct r_debug_extended *) (d)->d_un.d_ptr;	\
-      else							\
-	debug = NULL;						\
-      debug; }))
-#endif
+#define E(x) x
+#define EW(x) ElfW(x)
+#include <dl-r_debug.h>
 
 static int
 do_test (void)
@@ -44,7 +37,7 @@ do_test (void)
 
   for (d = _DYNAMIC; d->d_tag != DT_NULL; ++d)
     {
-      debug = ELF_MACHINE_GET_R_DEBUG (d);
+      debug = (struct r_debug_extended *) r_debug_address (d);
       if (debug != NULL)
 	break;
     }