PowerPC reloc symbols that shouldn't be adjusted
authorAlan Modra <amodra@gmail.com>
Sun, 5 May 2019 23:13:32 +0000 (08:43 +0930)
committerAlan Modra <amodra@gmail.com>
Mon, 6 May 2019 02:11:28 +0000 (11:41 +0930)
commit334d91b9407c5f9f37f224b0f43551c01964eff1
treecbd9f9290f354419eaef60efd05261073ce323b3
parent62e6b7b3b3c6f2fffe9f5863ddebf430533b79f0
PowerPC reloc symbols that shouldn't be adjusted

GOT and PLT relocs shouldn't have their symbols replaced with a
section symbol plus added.  Nor should the HIGHA TLS relocations,
which failed to be caught by the range test in ppc_fix_adjustable.

bfd/
* reloc.c (BFD_RELOC_PPC64_TPREL16_HIGH, BFD_RELOC_PPC64_TPREL16_HIGHA),
(BFD_RELOC_PPC64_DTPREL16_HIGH, BFD_RELOC_PPC64_DTPREL16_HIGHA):
Sort before BFD_RELOC_PPC64_DTPREL16_HIGHESTA entry.
gas/
* config/tc-ppc.c (ppc_fix_adjustable): Exclude all GOT and PLT
relocs, and VLE sdarel relocs.
* testsuite/gas/ppc/power4.d: Adjust.
bfd/ChangeLog
bfd/bfd-in2.h
bfd/libbfd.h
bfd/reloc.c
gas/ChangeLog
gas/config/tc-ppc.c
gas/testsuite/gas/ppc/power4.d