diff options
Diffstat (limited to 'elf')
-rw-r--r-- | elf/do-rel.h | 3 | ||||
-rw-r--r-- | elf/dynamic-link.h | 6 |
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]) \ |