PowerPC64: Avoid useless work on R_PPC64_TPREL34
authorAlan Modra <amodra@gmail.com>
Wed, 8 Sep 2021 03:25:48 +0000 (12:55 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 8 Sep 2021 12:52:34 +0000 (22:22 +0930)
_bfd_elf_ppc_at_tprel_transform doesn't handle prefix instructions,
and I'm not inclined to implement code editing for them.

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

bfd/elf64-ppc.c

index 520804a0e1c59ff6c7da86b5e753489828401fe7..aa997bb42aba4d832df40455d21582fce7813e53 100644 (file)
@@ -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