summaryrefslogtreecommitdiff
path: root/bfd/reloc.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-05-06 08:43:32 +0930
committerAlan Modra <amodra@gmail.com>2019-05-06 11:41:28 +0930
commit334d91b9407c5f9f37f224b0f43551c01964eff1 (patch)
treecbd9f9290f354419eaef60efd05261073ce323b3 /bfd/reloc.c
parent62e6b7b3b3c6f2fffe9f5863ddebf430533b79f0 (diff)
downloadbinutils-gdb-334d91b9407c5f9f37f224b0f43551c01964eff1.tar.gz
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.
Diffstat (limited to 'bfd/reloc.c')
-rw-r--r--bfd/reloc.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 96152798332..f1465813f77 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -2946,6 +2946,10 @@ ENUMX
ENUMX
BFD_RELOC_PPC64_TPREL16_LO_DS
ENUMX
+ BFD_RELOC_PPC64_TPREL16_HIGH
+ENUMX
+ BFD_RELOC_PPC64_TPREL16_HIGHA
+ENUMX
BFD_RELOC_PPC64_TPREL16_HIGHER
ENUMX
BFD_RELOC_PPC64_TPREL16_HIGHERA
@@ -2958,6 +2962,10 @@ ENUMX
ENUMX
BFD_RELOC_PPC64_DTPREL16_LO_DS
ENUMX
+ BFD_RELOC_PPC64_DTPREL16_HIGH
+ENUMX
+ BFD_RELOC_PPC64_DTPREL16_HIGHA
+ENUMX
BFD_RELOC_PPC64_DTPREL16_HIGHER
ENUMX
BFD_RELOC_PPC64_DTPREL16_HIGHERA
@@ -2965,14 +2973,6 @@ ENUMX
BFD_RELOC_PPC64_DTPREL16_HIGHEST
ENUMX
BFD_RELOC_PPC64_DTPREL16_HIGHESTA
-ENUMX
- BFD_RELOC_PPC64_TPREL16_HIGH
-ENUMX
- BFD_RELOC_PPC64_TPREL16_HIGHA
-ENUMX
- BFD_RELOC_PPC64_DTPREL16_HIGH
-ENUMX
- BFD_RELOC_PPC64_DTPREL16_HIGHA
ENUMDOC
PowerPC and PowerPC64 thread-local storage relocations.