diff options
author | Alan Modra <amodra@gmail.com> | 2020-06-06 11:56:20 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-06-06 14:44:32 +0930 |
commit | 87c69f9732039d889f04ae8b9bb81b80e530a6f1 (patch) | |
tree | f6cb53fcadadba05fd6654aaa41e9417cd3db8ea /gas | |
parent | 1fc47f80893f810915a167ed554497f820cb2220 (diff) | |
download | gdb-87c69f9732039d889f04ae8b9bb81b80e530a6f1.zip gdb-87c69f9732039d889f04ae8b9bb81b80e530a6f1.tar.gz gdb-87c69f9732039d889f04ae8b9bb81b80e530a6f1.tar.bz2 |
Rename PowerPC64 pcrel GOT TLS relocations
These relocations should have had REL in their names, to reflect the
fact that they are pc-relative. Fix that now by adding _PCREL.
I've added some back-compatibility code to support anyone using
.reloc with the old relocations.
include/
* elf/ppc64.h (elf_ppc64_reloc_type): Rename
R_PPC64_GOT_TLSGD34 to R_PPC64_GOT_TLSGD_PCREL34,
R_PPC64_GOT_TLSLD34 to R_PPC64_GOT_TLSLD_PCREL34,
R_PPC64_GOT_TPREL34 to R_PPC64_GOT_TPREL_PCREL34, and
R_PPC64_GOT_DTPREL34 to R_PPC64_GOT_DTPREL_PCREL34.
bfd/
* reloc.c: Rename
BFD_RELOC_PPC64_GOT_TLSGD34 to BFD_RELOC_PPC64_GOT_TLSGD_PCREL34,
BFD_RELOC_PPC64_GOT_TLSLD34 to BFD_RELOC_PPC64_GOT_TLSLD_PCREL34,
BFD_RELOC_PPC64_GOT_TPREL34 to BFD_RELOC_PPC64_GOT_TPREL_PCREL34,
BFD_RELOC_PPC64_GOT_DTPREL34 to BFD_RELOC_PPC64_GOT_DTPREL_PCREL34.
* elf64-ppc.c: Update throughout for reloc renaming.
(ppc64_elf_reloc_name_lookup): Handle old reloc names.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
gas/
* config/tc-ppc.c: Update throughout for reloc renaming.
elfcpp/
* powerpc.h: Rename
R_PPC64_GOT_TLSGD34 to R_PPC64_GOT_TLSGD_PCREL34,
R_PPC64_GOT_TLSLD34 to R_PPC64_GOT_TLSLD_PCREL34,
R_PPC64_GOT_TPREL34 to R_PPC64_GOT_TPREL_PCREL34, and
R_PPC64_GOT_DTPREL34 to R_PPC64_GOT_DTPREL_PCREL34.
gold/
* powerpc.cc: Update throughout for reloc renaming.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 4 | ||||
-rw-r--r-- | gas/config/tc-ppc.c | 32 |
2 files changed, 20 insertions, 16 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 3ef92ad..56c2ff3 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,7 @@ +2020-06-06 Alan Modra <amodra@gmail.com> + + * config/tc-ppc.c: Update throughout for reloc renaming. + 2020-06-05 Jose E. Marchesi <jose.marchesi@oracle.com> * config/tc-bpf.c (md_apply_fix): Avoid GCC 10 warning diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 4a07f0b..5f9d44d 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -2233,10 +2233,10 @@ ppc_elf_suffix (char **str_p, expressionS *exp_p) MAP64 ("got@pcrel", BFD_RELOC_PPC64_GOT_PCREL34), MAP64 ("plt@pcrel", BFD_RELOC_PPC64_PLT_PCREL34), MAP64 ("tls@pcrel", BFD_RELOC_PPC64_TLS_PCREL), - MAP64 ("got@tlsgd@pcrel", BFD_RELOC_PPC64_GOT_TLSGD34), - MAP64 ("got@tlsld@pcrel", BFD_RELOC_PPC64_GOT_TLSLD34), - MAP64 ("got@tprel@pcrel", BFD_RELOC_PPC64_GOT_TPREL34), - MAP64 ("got@dtprel@pcrel", BFD_RELOC_PPC64_GOT_DTPREL34), + MAP64 ("got@tlsgd@pcrel", BFD_RELOC_PPC64_GOT_TLSGD_PCREL34), + MAP64 ("got@tlsld@pcrel", BFD_RELOC_PPC64_GOT_TLSLD_PCREL34), + MAP64 ("got@tprel@pcrel", BFD_RELOC_PPC64_GOT_TPREL_PCREL34), + MAP64 ("got@dtprel@pcrel", BFD_RELOC_PPC64_GOT_DTPREL_PCREL34), MAP64 ("higher34", BFD_RELOC_PPC64_ADDR16_HIGHER34), MAP64 ("highera34", BFD_RELOC_PPC64_ADDR16_HIGHERA34), MAP64 ("highest34", BFD_RELOC_PPC64_ADDR16_HIGHEST34), @@ -3219,10 +3219,10 @@ fixup_size (bfd_reloc_code_real_type reloc, bfd_boolean *pc_relative) case BFD_RELOC_64_PCREL: case BFD_RELOC_64_PLT_PCREL: case BFD_RELOC_PPC64_GOT_PCREL34: - case BFD_RELOC_PPC64_GOT_TLSGD34: - case BFD_RELOC_PPC64_GOT_TLSLD34: - case BFD_RELOC_PPC64_GOT_TPREL34: - case BFD_RELOC_PPC64_GOT_DTPREL34: + case BFD_RELOC_PPC64_GOT_TLSGD_PCREL34: + case BFD_RELOC_PPC64_GOT_TLSLD_PCREL34: + case BFD_RELOC_PPC64_GOT_TPREL_PCREL34: + case BFD_RELOC_PPC64_GOT_DTPREL_PCREL34: case BFD_RELOC_PPC64_PCREL28: case BFD_RELOC_PPC64_PCREL34: case BFD_RELOC_PPC64_PLT_PCREL34: @@ -3804,10 +3804,10 @@ md_assemble (char *str) /* Fall through. */ case BFD_RELOC_PPC64_GOT_PCREL34: case BFD_RELOC_PPC64_PLT_PCREL34: - case BFD_RELOC_PPC64_GOT_TLSGD34: - case BFD_RELOC_PPC64_GOT_TLSLD34: - case BFD_RELOC_PPC64_GOT_TPREL34: - case BFD_RELOC_PPC64_GOT_DTPREL34: + case BFD_RELOC_PPC64_GOT_TLSGD_PCREL34: + case BFD_RELOC_PPC64_GOT_TLSLD_PCREL34: + case BFD_RELOC_PPC64_GOT_TPREL_PCREL34: + case BFD_RELOC_PPC64_GOT_DTPREL_PCREL34: if (operand->bitm != 0x3ffffffffULL || (operand->flags & PPC_OPERAND_NEGATIVE) != 0) as_warn (_("%s unsupported on this instruction"), "@pcrel"); @@ -7532,10 +7532,10 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg) case BFD_RELOC_PPC64_DTPREL16_HIGHESTA: case BFD_RELOC_PPC64_TPREL34: case BFD_RELOC_PPC64_DTPREL34: - case BFD_RELOC_PPC64_GOT_TLSGD34: - case BFD_RELOC_PPC64_GOT_TLSLD34: - case BFD_RELOC_PPC64_GOT_TPREL34: - case BFD_RELOC_PPC64_GOT_DTPREL34: + case BFD_RELOC_PPC64_GOT_TLSGD_PCREL34: + case BFD_RELOC_PPC64_GOT_TLSLD_PCREL34: + case BFD_RELOC_PPC64_GOT_TPREL_PCREL34: + case BFD_RELOC_PPC64_GOT_DTPREL_PCREL34: gas_assert (fixP->fx_addsy != NULL); S_SET_THREAD_LOCAL (fixP->fx_addsy); fieldval = 0; |