[lld] 79d9cf8 - [NFC][ELF][AArch64][PAC] Use existing addSymbolReloc for R_AARCH64_AUTH_ABS64
via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 22 08:18:15 PST 2025
Author: Jessica Clarke
Date: 2025-12-22T16:18:11Z
New Revision: 79d9cf894458011daebc6055fde87cd42e381a99
URL: https://github.com/llvm/llvm-project/commit/79d9cf894458011daebc6055fde87cd42e381a99
DIFF: https://github.com/llvm/llvm-project/commit/79d9cf894458011daebc6055fde87cd42e381a99.diff
LOG: [NFC][ELF][AArch64][PAC] Use existing addSymbolReloc for R_AARCH64_AUTH_ABS64
The only difference between these calls is whether rel or type is passed
as the first argument, but AArch64::getDynRel returns type unchanged for
R_AARCH64_AUTH_ABS64, so they are the same.
Reviewers: MaskRay, kovdan01
Pull Request: https://github.com/llvm/llvm-project/pull/171179
Added:
Modified:
lld/ELF/Relocations.cpp
Removed:
################################################################################
diff --git a/lld/ELF/Relocations.cpp b/lld/ELF/Relocations.cpp
index 59aa43036ce01..d6c63ed919910 100644
--- a/lld/ELF/Relocations.cpp
+++ b/lld/ELF/Relocations.cpp
@@ -1005,13 +1005,12 @@ void RelocScan::process(RelExpr expr, RelType type, uint64_t offset,
rel = ctx.target->relativeRel;
std::lock_guard<std::mutex> lock(ctx.relocMutex);
Partition &part = sec->getPartition(ctx);
- if (ctx.arg.emachine == EM_AARCH64 && type == R_AARCH64_AUTH_ABS64) {
- // For a preemptible symbol, we can't use a relative relocation. For an
- // undefined symbol, we can't compute offset at link-time and use a
- // relative relocation. Use a symbolic relocation instead.
- if (sym.isPreemptible) {
- part.relaDyn->addSymbolReloc(type, *sec, offset, sym, addend, type);
- } else if (part.relrAuthDyn && sec->addralign >= 2 && offset % 2 == 0) {
+ // For a preemptible symbol, we can't use a relative relocation. For an
+ // undefined symbol, we can't compute offset at link-time and use a
+ // relative relocation. Use a symbolic relocation instead.
+ if (ctx.arg.emachine == EM_AARCH64 && type == R_AARCH64_AUTH_ABS64 &&
+ !sym.isPreemptible) {
+ if (part.relrAuthDyn && sec->addralign >= 2 && offset % 2 == 0) {
// When symbol values are determined in
// finalizeAddressDependentContent, some .relr.auth.dyn relocations
// may be moved to .rela.dyn.
More information about the llvm-commits
mailing list