c5d6fa4495
* elfxx-mips.c (mips_use_local_got_p): New function. (mips_elf_count_got_symbols, mips_elf_calculate_relocation): Use it. (_bfd_mips_elf_check_relocs): Set pointer_equality_needed for GOT and absolute references. ld/testsuite/ * ld-mips-elf/pic-and-nonpic-6-n32.ad, ld-mips-elf/pic-and-nonpic-6-n32.dd, ld-mips-elf/pic-and-nonpic-6-n32.gd, ld-mips-elf/pic-and-nonpic-6-n32.nd, ld-mips-elf/pic-and-nonpic-6-n32.rd, ld-mips-elf/pic-and-nonpic-6-n64.ad, ld-mips-elf/pic-and-nonpic-6-n64.dd, ld-mips-elf/pic-and-nonpic-6-n64.gd, ld-mips-elf/pic-and-nonpic-6-n64.nd, ld-mips-elf/pic-and-nonpic-6-n64.rd, ld-mips-elf/pic-and-nonpic-6-o32.ad, ld-mips-elf/pic-and-nonpic-6-o32.dd, ld-mips-elf/pic-and-nonpic-6-o32.gd, ld-mips-elf/pic-and-nonpic-6-o32.nd, ld-mips-elf/pic-and-nonpic-6-o32.rd: Fix symbol value of extf4. No longer expect extf3, extf4 and extd2 to be in the global GOT.
40 lines
1.3 KiB
Text
40 lines
1.3 KiB
Text
|
|
Symbol table '\.dynsym' contains .*:
|
|
#
|
|
# extf4 is referenced by a JAL and .word. The former requires a PLT entry
|
|
# and the latter requires pointer equality, which means a symbol value is
|
|
# needed.
|
|
#...
|
|
.*: 0+43060 +0 +FUNC +GLOBAL +DEFAULT \[MIPS PLT\] +UND +extf4
|
|
#
|
|
# extf5 is called but does not have its address taken. It needs a PLT
|
|
# but no symbol value should be set.
|
|
#...
|
|
.*: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf5
|
|
#
|
|
# extd2 is referenced by %got, .word and %hi/%lo. The last pair forces
|
|
# a copy reloc.
|
|
#
|
|
.*: 0+a2000 +24 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +extd2
|
|
#
|
|
# extf3 is referenced by a JAL and a GOT CALL reloc. The JAL forces a PLT
|
|
# that the GOT CALL reloc will also use, but pointer equality isn't needed
|
|
# and so no symbol value should be set.
|
|
#
|
|
.*: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf3
|
|
#
|
|
# extd3 is referenced by .word and %hi/%lo. The latter pair forces
|
|
# a copy reloc.
|
|
#...
|
|
.*: 0+a2018 +28 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +extd3
|
|
#
|
|
# The index on the next line should correspond to MIPS_GOTSYM,
|
|
# and the remaining symbols should have the same order as the
|
|
# GOT layout given in the *.dd dump.
|
|
#
|
|
*8: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf2
|
|
*9: 0+440a0 +0 +FUNC +GLOBAL +DEFAULT +UND +extf1
|
|
*10: 0+ +0 +OBJECT +GLOBAL +DEFAULT +UND +extd1
|
|
*11: 0+ +0 +OBJECT +GLOBAL +DEFAULT +UND +extd4
|
|
|
|
#pass
|