From f1cbfe97d4c15163b0590e1d903659fd805a4a74 Mon Sep 17 00:00:00 2001 From: Ben Barham Date: Wed, 18 Sep 2024 17:41:46 -0700 Subject: [PATCH] Partially revert "[llvm][lld] Support R_AARCH64_GOTPCREL32 (#72584)" This reverts the MC changes from commit 04a906ec980e7bf49ffda0808766f51d08e8ae76, which cause failures when linking with gold on arm64. --- .../Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp | 5 +---- llvm/test/MC/AArch64/elf-reloc-gotpcrel32.s | 2 ++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp index b4c5cde5fd888..b0e2c81fc7900 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp @@ -206,10 +206,7 @@ unsigned AArch64ELFObjectWriter::getRelocType(MCContext &Ctx, case FK_Data_2: return R_CLS(ABS16); case FK_Data_4: - return (!IsILP32 && - Target.getAccessVariant() == MCSymbolRefExpr::VK_GOTPCREL) - ? ELF::R_AARCH64_GOTPCREL32 - : R_CLS(ABS32); + return R_CLS(ABS32); case FK_Data_8: { bool IsAuth = (RefKind == AArch64MCExpr::VK_AUTH || RefKind == AArch64MCExpr::VK_AUTHADDR); diff --git a/llvm/test/MC/AArch64/elf-reloc-gotpcrel32.s b/llvm/test/MC/AArch64/elf-reloc-gotpcrel32.s index afbcaad9e1dfd..4115717fc1a57 100644 --- a/llvm/test/MC/AArch64/elf-reloc-gotpcrel32.s +++ b/llvm/test/MC/AArch64/elf-reloc-gotpcrel32.s @@ -1,3 +1,5 @@ +// XFAIL: !rdar135050296 + // RUN: llvm-mc -triple=aarch64 -filetype=obj %s -o - | \ // RUN: llvm-readobj -r - | FileCheck %s