about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--elf/do-rel.h3
-rw-r--r--elf/dynamic-link.h6
2 files changed, 6 insertions, 3 deletions
diff --git a/elf/do-rel.h b/elf/do-rel.h
index 69f2f0e467..05c03f7520 100644
--- a/elf/do-rel.h
+++ b/elf/do-rel.h
@@ -49,7 +49,8 @@
 auto inline void __attribute__ ((always_inline))
 elf_dynamic_do_Rel (struct link_map *map,
 		    ElfW(Addr) reladdr, ElfW(Addr) relsize,
-		    ElfW(Word) nrelative, int lazy, int skip_ifunc)
+		    __typeof (((ElfW(Dyn) *) 0)->d_un.d_val) nrelative,
+		    int lazy, int skip_ifunc)
 {
   const ElfW(Rel) *r = (const void *) reladdr;
   const ElfW(Rel) *end = (const void *) (reladdr + relsize);
diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h
index 486408d3c5..9cdbee1e34 100644
--- a/elf/dynamic-link.h
+++ b/elf/dynamic-link.h
@@ -258,7 +258,8 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp)
 # ifdef ELF_MACHINE_PLTREL_OVERLAP
 #  define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, skip_ifunc, test_rel) \
   do {									      \
-    struct { ElfW(Addr) start, size; ElfW(Word) nrelative; int lazy; }	      \
+    struct { ElfW(Addr) start, size;					      \
+	     __typeof (((ElfW(Dyn) *) 0)->d_un.d_val) nrelative; int lazy; }  \
     ranges[3];								      \
     int ranges_index;							      \
 									      \
@@ -299,7 +300,8 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp)
 # else
 #  define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, skip_ifunc, test_rel) \
   do {									      \
-    struct { ElfW(Addr) start, size; ElfW(Word) nrelative; int lazy; }	      \
+    struct { ElfW(Addr) start, size;					      \
+	     __typeof (((ElfW(Dyn) *) 0)->d_un.d_val) nrelative; int lazy; }  \
       ranges[2] = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 } };			      \
 									      \
     if ((map)->l_info[DT_##RELOC])					      \