From 22c1bd57bf34391cd16e91fa4830dba4cdf17aa2 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Fri, 18 Dec 2020 08:24:42 -0800 Subject: [PATCH] [ELF] Rename R_TLS to R_TPREL and R_NEG_TLS to R_TPREL_NEG. NFC The scope of R_TLS (TP offset relocation types (TPREL/TPOFF) used for the local-exec TLS model) is actually narrower than its name may imply. R_TLS_NEG is only used by Solaris R_386_TLS_LE_32. Rename them so that they will be less confusing. Reviewed By: grimar, psmith, rprichard Differential Revision: https://reviews.llvm.org/D93467 --- lld/ELF/Arch/AArch64.cpp | 2 +- lld/ELF/Arch/ARM.cpp | 2 +- lld/ELF/Arch/Hexagon.cpp | 2 +- lld/ELF/Arch/Mips.cpp | 2 +- lld/ELF/Arch/PPC.cpp | 2 +- lld/ELF/Arch/PPC64.cpp | 2 +- lld/ELF/Arch/RISCV.cpp | 2 +- lld/ELF/Arch/SPARCV9.cpp | 2 +- lld/ELF/Arch/X86.cpp | 4 ++-- lld/ELF/Arch/X86_64.cpp | 2 +- lld/ELF/InputSection.cpp | 4 ++-- lld/ELF/Relocations.cpp | 2 +- lld/ELF/Relocations.h | 4 ++-- 13 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lld/ELF/Arch/AArch64.cpp b/lld/ELF/Arch/AArch64.cpp index e612519..61230a6 100644 --- a/lld/ELF/Arch/AArch64.cpp +++ b/lld/ELF/Arch/AArch64.cpp @@ -120,7 +120,7 @@ RelExpr AArch64::getRelExpr(RelType type, const Symbol &s, case R_AARCH64_TLSLE_MOVW_TPREL_G1: case R_AARCH64_TLSLE_MOVW_TPREL_G1_NC: case R_AARCH64_TLSLE_MOVW_TPREL_G2: - return R_TLS; + return R_TPREL; case R_AARCH64_CALL26: case R_AARCH64_CONDBR19: case R_AARCH64_JUMP26: diff --git a/lld/ELF/Arch/ARM.cpp b/lld/ELF/Arch/ARM.cpp index fd90557..e90e7ef 100644 --- a/lld/ELF/Arch/ARM.cpp +++ b/lld/ELF/Arch/ARM.cpp @@ -150,7 +150,7 @@ RelExpr ARM::getRelExpr(RelType type, const Symbol &s, case R_ARM_NONE: return R_NONE; case R_ARM_TLS_LE32: - return R_TLS; + return R_TPREL; case R_ARM_V4BX: // V4BX is just a marker to indicate there's a "bx rN" instruction at the // given address. It can be used to implement a special linker mode which diff --git a/lld/ELF/Arch/Hexagon.cpp b/lld/ELF/Arch/Hexagon.cpp index 4896c75..02d872d 100644 --- a/lld/ELF/Arch/Hexagon.cpp +++ b/lld/ELF/Arch/Hexagon.cpp @@ -154,7 +154,7 @@ RelExpr Hexagon::getRelExpr(RelType type, const Symbol &s, case R_HEX_TPREL_32_6_X: case R_HEX_TPREL_HI16: case R_HEX_TPREL_LO16: - return R_TLS; + return R_TPREL; default: error(getErrorLocation(loc) + "unknown relocation (" + Twine(type) + ") against symbol " + toString(s)); diff --git a/lld/ELF/Arch/Mips.cpp b/lld/ELF/Arch/Mips.cpp index d5eaf94..5c6b3e2 100644 --- a/lld/ELF/Arch/Mips.cpp +++ b/lld/ELF/Arch/Mips.cpp @@ -146,7 +146,7 @@ RelExpr MIPS::getRelExpr(RelType type, const Symbol &s, case R_MIPS_TLS_TPREL64: case R_MICROMIPS_TLS_TPREL_HI16: case R_MICROMIPS_TLS_TPREL_LO16: - return R_TLS; + return R_TPREL; case R_MIPS_PC32: case R_MIPS_PC16: case R_MIPS_PC19_S2: diff --git a/lld/ELF/Arch/PPC.cpp b/lld/ELF/Arch/PPC.cpp index 88a1b21..5b22e6c 100644 --- a/lld/ELF/Arch/PPC.cpp +++ b/lld/ELF/Arch/PPC.cpp @@ -259,7 +259,7 @@ RelExpr PPC::getRelExpr(RelType type, const Symbol &s, case R_PPC_TPREL16_HA: case R_PPC_TPREL16_LO: case R_PPC_TPREL16_HI: - return R_TLS; + return R_TPREL; default: error(getErrorLocation(loc) + "unknown relocation (" + Twine(type) + ") against symbol " + toString(s)); diff --git a/lld/ELF/Arch/PPC64.cpp b/lld/ELF/Arch/PPC64.cpp index 65652b1..477f76b 100644 --- a/lld/ELF/Arch/PPC64.cpp +++ b/lld/ELF/Arch/PPC64.cpp @@ -1025,7 +1025,7 @@ RelExpr PPC64::getRelExpr(RelType type, const Symbol &s, case R_PPC64_TPREL16_HIGHEST: case R_PPC64_TPREL16_HIGHESTA: case R_PPC64_TPREL34: - return R_TLS; + return R_TPREL; case R_PPC64_DTPREL16: case R_PPC64_DTPREL16_DS: case R_PPC64_DTPREL16_HA: diff --git a/lld/ELF/Arch/RISCV.cpp b/lld/ELF/Arch/RISCV.cpp index 4cbf925..ca4178b 100644 --- a/lld/ELF/Arch/RISCV.cpp +++ b/lld/ELF/Arch/RISCV.cpp @@ -235,7 +235,7 @@ RelExpr RISCV::getRelExpr(const RelType type, const Symbol &s, case R_RISCV_TPREL_HI20: case R_RISCV_TPREL_LO12_I: case R_RISCV_TPREL_LO12_S: - return R_TLS; + return R_TPREL; case R_RISCV_RELAX: case R_RISCV_TPREL_ADD: return R_NONE; diff --git a/lld/ELF/Arch/SPARCV9.cpp b/lld/ELF/Arch/SPARCV9.cpp index f137c21..9e18ae4 100644 --- a/lld/ELF/Arch/SPARCV9.cpp +++ b/lld/ELF/Arch/SPARCV9.cpp @@ -78,7 +78,7 @@ RelExpr SPARCV9::getRelExpr(RelType type, const Symbol &s, return R_NONE; case R_SPARC_TLS_LE_HIX22: case R_SPARC_TLS_LE_LOX10: - return R_TLS; + return R_TPREL; default: error(getErrorLocation(loc) + "unknown relocation (" + Twine(type) + ") against symbol " + toString(s)); diff --git a/lld/ELF/Arch/X86.cpp b/lld/ELF/Arch/X86.cpp index 1e10bd3..f18fa0b 100644 --- a/lld/ELF/Arch/X86.cpp +++ b/lld/ELF/Arch/X86.cpp @@ -148,9 +148,9 @@ RelExpr X86::getRelExpr(RelType type, const Symbol &s, case R_386_GOTOFF: return R_GOTPLTREL; case R_386_TLS_LE: - return R_TLS; + return R_TPREL; case R_386_TLS_LE_32: - return R_NEG_TLS; + return R_TPREL_NEG; case R_386_NONE: return R_NONE; default: diff --git a/lld/ELF/Arch/X86_64.cpp b/lld/ELF/Arch/X86_64.cpp index db4428e..18857f6 100644 --- a/lld/ELF/Arch/X86_64.cpp +++ b/lld/ELF/Arch/X86_64.cpp @@ -324,7 +324,7 @@ RelExpr X86_64::getRelExpr(RelType type, const Symbol &s, case R_X86_64_DTPOFF64: return R_DTPREL; case R_X86_64_TPOFF32: - return R_TLS; + return R_TPREL; case R_X86_64_TLSDESC_CALL: return R_TLSDESC_CALL; case R_X86_64_TLSLD: diff --git a/lld/ELF/InputSection.cpp b/lld/ELF/InputSection.cpp index 497fb60..44c2d7d 100644 --- a/lld/ELF/InputSection.cpp +++ b/lld/ELF/InputSection.cpp @@ -812,7 +812,7 @@ uint64_t InputSectionBase::getRelocTargetVA(const InputFile *file, RelType type, case R_RELAX_TLS_GD_TO_LE: case R_RELAX_TLS_IE_TO_LE: case R_RELAX_TLS_LD_TO_LE: - case R_TLS: + case R_TPREL: // It is not very clear what to return if the symbol is undefined. With // --noinhibit-exec, even a non-weak undefined reference may reach here. // Just return A, which matches R_ABS, and the behavior of some dynamic @@ -821,7 +821,7 @@ uint64_t InputSectionBase::getRelocTargetVA(const InputFile *file, RelType type, return a; return getTlsTpOffset(sym) + a; case R_RELAX_TLS_GD_TO_LE_NEG: - case R_NEG_TLS: + case R_TPREL_NEG: if (sym.isUndefined()) return a; return -getTlsTpOffset(sym) + a; diff --git a/lld/ELF/Relocations.cpp b/lld/ELF/Relocations.cpp index c545f1c..18151c0 100644 --- a/lld/ELF/Relocations.cpp +++ b/lld/ELF/Relocations.cpp @@ -1073,7 +1073,7 @@ static void addPltEntry(PltSection *plt, GotPltSection *gotPlt, static void addGotEntry(Symbol &sym) { in.got->addEntry(sym); - RelExpr expr = sym.isTls() ? R_TLS : R_ABS; + RelExpr expr = sym.isTls() ? R_TPREL : R_ABS; uint64_t off = sym.getGotOffset(); // If a GOT slot value can be calculated at link-time, which is now, diff --git a/lld/ELF/Relocations.h b/lld/ELF/Relocations.h index fccd568..de3c36b 100644 --- a/lld/ELF/Relocations.h +++ b/lld/ELF/Relocations.h @@ -41,7 +41,6 @@ enum RelExpr { R_GOTPLT, R_GOTPLTREL, R_GOTREL, - R_NEG_TLS, R_NONE, R_PC, R_PLT, @@ -58,7 +57,8 @@ enum RelExpr { R_RELAX_TLS_LD_TO_LE, R_RELAX_TLS_LD_TO_LE_ABS, R_SIZE, - R_TLS, + R_TPREL, + R_TPREL_NEG, R_TLSDESC, R_TLSDESC_CALL, R_TLSDESC_PC, -- 2.7.4