
As already done for PowerPC64, fix dynamic relocs for absolute symbols. The patch also tidies the dynamic reloc handling code in check_relocs, removing leftover comments and code from when check_relocs was called as each object file was read in. bfd/ * elf32-ppc.c (ppc_elf_check_relocs): Set isym and ifunc earlier. Rearrange tests for dynamic relocs, handling absolute symbols. (allocate_dynrelocs): Don't allocate dynamic relocs for locally defined absolute symbols. (ppc_elf_size_dynamic_sections): Similarly. (ppc_elf_relocate_section): Similarly. ld/ * testsuite/ld-powerpc/abs32-pie.d, * testsuite/ld-powerpc/abs32-pie.r, * testsuite/ld-powerpc/abs32-reloc.s, * testsuite/ld-powerpc/abs32-shared.d, * testsuite/ld-powerpc/abs32-shared.r, * testsuite/ld-powerpc/abs32-static.d, * testsuite/ld-powerpc/abs32-static.r: New tests. * testsuite/ld-powerpc/powerpc.exp: Run them.
13 lines
649 B
R
13 lines
649 B
R
#source: abs32-reloc.s
|
|
#as: -a32
|
|
#ld: -melf32ppc -shared --hash-style=sysv --defsym a=1 --defsym 'HIDDEN(b=2)' --defsym c=0x12345678
|
|
#readelf: -rW
|
|
|
|
Relocation section '\.rela\.dyn' at offset .* contains 6 entries:
|
|
Offset Info Type Sym\. Value Symbol's Name \+ Addend
|
|
000101e0 00000016 R_PPC_RELATIVE 101e0
|
|
000101f4 00000016 R_PPC_RELATIVE 101e0
|
|
000101e4 00000401 R_PPC_ADDR32 00000001 a \+ 0
|
|
000101fc 00000414 R_PPC_GLOB_DAT 00000001 a \+ 0
|
|
000101ec 00000301 R_PPC_ADDR32 12345678 c \+ 0
|
|
000101f8 00000314 R_PPC_GLOB_DAT 12345678 c \+ 0
|