From: Alan Modra Date: Fri, 16 Sep 2022 08:38:44 +0000 (+0930) Subject: PowerPC64 pcrel got relocs against local symbols X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=49c3ed081fed6b8e2b48fdc48f805f11e4589514;p=binutils-gdb.git PowerPC64 pcrel got relocs against local symbols Not that anyone would want to indirect via the GOT when an address can be loaded directly with pla, the following: pld 3,x@got@pcrel x: leads to "Internal error in md_apply_fix", because the generic parts of assembler fixup handling convert the fx_pcrel fixup to one without a symbol. Stop that happening. * config/tc-ppc.c (ppc_force_relocation): Add PLT_PCREL34 and assorted GOT_PCREL34 relocs. --- diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 37a8b54a28f..1ed8ef2034b 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -6689,6 +6689,12 @@ ppc_force_relocation (fixS *fix) case BFD_RELOC_PPC_BA16_BRNTAKEN: case BFD_RELOC_24_PLT_PCREL: case BFD_RELOC_PPC64_TOC: + case BFD_RELOC_PPC64_PLT_PCREL34: + case BFD_RELOC_PPC64_GOT_PCREL34: + 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: return 1; case BFD_RELOC_PPC_B26: case BFD_RELOC_PPC_BA26: