PowerPC64: Avoid useless work on R_PPC64_TPREL34

Message ID YTiYHQ5ZmHPdFDZN@squeak.grove.modra.org
State New
Headers show
Series
  • PowerPC64: Avoid useless work on R_PPC64_TPREL34
Related show

Commit Message

Cooper Qu via Binutils Sept. 8, 2021, 11:01 a.m.
_bfd_elf_ppc_at_tprel_transform doesn't handle prefix instructions,
and I'm not inclined to implement code editing for them.  At least,
not this particular tweak for undefined weak symbols.

	* elf64-ppc.c (ppc64_elf_relocate_section): Don't attempt tprel
	transform for R_PPC64_TPREL34.


-- 
Alan Modra
Australia Development Lab, IBM

Patch

diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 520804a0e1c..aa997bb42ab 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -16657,7 +16657,6 @@  ppc64_elf_relocate_section (bfd *output_bfd,
 	case R_PPC64_TPREL16_HIGHERA:
 	case R_PPC64_TPREL16_HIGHEST:
 	case R_PPC64_TPREL16_HIGHESTA:
-	case R_PPC64_TPREL34:
 	  if (h != NULL
 	      && h->elf.root.type == bfd_link_hash_undefweak
 	      && h->elf.dynindx == -1)
@@ -16674,6 +16673,9 @@  ppc64_elf_relocate_section (bfd *output_bfd,
 		bfd_put_32 (input_bfd, insn, p);
 	      break;
 	    }
+	  /* Fall through.  */
+
+	case R_PPC64_TPREL34:
 	  if (htab->elf.tls_sec != NULL)
 	    addend -= htab->elf.tls_sec->vma + TP_OFFSET;
 	  /* The TPREL16 relocs shouldn't really be used in shared