>From e71d2b29e62d8e0d0dc9d8641af0a3d9668094f7 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Fri, 19 Jun 2026 13:43:01 +0000 Subject: [PATCH 1/2] tls: remove TPOFF_K from reloc.h use -TP_OFFSET from pthread_arch.h instead. --- arch/aarch64/reloc.h | 2 -- arch/arm/reloc.h | 2 -- arch/loongarch64/reloc.h | 2 -- arch/m68k/reloc.h | 2 -- arch/microblaze/reloc.h | 2 -- arch/mips/reloc.h | 2 -- arch/mips64/reloc.h | 2 -- arch/mipsn32/reloc.h | 2 -- arch/or1k/reloc.h | 2 -- arch/powerpc/reloc.h | 2 -- arch/powerpc64/reloc.h | 2 -- arch/riscv32/reloc.h | 2 -- arch/riscv64/reloc.h | 2 -- arch/sh/reloc.h | 2 -- ldso/dynlink.c | 4 ++-- 15 files changed, 2 insertions(+), 30 deletions(-) diff --git a/arch/aarch64/reloc.h b/arch/aarch64/reloc.h index b1b68c72..5f427a10 100644 --- a/arch/aarch64/reloc.h +++ b/arch/aarch64/reloc.h @@ -8,8 +8,6 @@ #define NO_LEGACY_INITFINI -#define TPOFF_K 0 - #define REL_SYMBOLIC R_AARCH64_ABS64 #define REL_GOT R_AARCH64_GLOB_DAT #define REL_PLT R_AARCH64_JUMP_SLOT diff --git a/arch/arm/reloc.h b/arch/arm/reloc.h index d98eb8af..b8d8b1b0 100644 --- a/arch/arm/reloc.h +++ b/arch/arm/reloc.h @@ -14,8 +14,6 @@ #define NO_LEGACY_INITFINI -#define TPOFF_K 0 - #define REL_SYMBOLIC R_ARM_ABS32 #define REL_GOT R_ARM_GLOB_DAT #define REL_PLT R_ARM_JUMP_SLOT diff --git a/arch/loongarch64/reloc.h b/arch/loongarch64/reloc.h index a4db6a9c..26d9d9fa 100644 --- a/arch/loongarch64/reloc.h +++ b/arch/loongarch64/reloc.h @@ -8,8 +8,6 @@ #define LDSO_ARCH "loongarch64" FP_SUFFIX -#define TPOFF_K 0 - #define REL_PLT R_LARCH_JUMP_SLOT #define REL_COPY R_LARCH_COPY #define REL_DTPMOD R_LARCH_TLS_DTPMOD64 diff --git a/arch/m68k/reloc.h b/arch/m68k/reloc.h index f920b39e..4ed8e7a8 100644 --- a/arch/m68k/reloc.h +++ b/arch/m68k/reloc.h @@ -8,8 +8,6 @@ #define LDSO_ARCH "m68k" FP_SUFFIX -#define TPOFF_K (-0x7000) - #define REL_SYMBOLIC R_68K_32 #define REL_OFFSET R_68K_PC32 #define REL_GOT R_68K_GLOB_DAT diff --git a/arch/microblaze/reloc.h b/arch/microblaze/reloc.h index 6302c6ee..11d0347b 100644 --- a/arch/microblaze/reloc.h +++ b/arch/microblaze/reloc.h @@ -6,8 +6,6 @@ #define LDSO_ARCH "microblaze" ENDIAN_SUFFIX -#define TPOFF_K 0 - #define REL_SYMBOLIC R_MICROBLAZE_32 #define REL_GOT R_MICROBLAZE_GLOB_DAT #define REL_PLT R_MICROBLAZE_JUMP_SLOT diff --git a/arch/mips/reloc.h b/arch/mips/reloc.h index f4023b16..4032c62b 100644 --- a/arch/mips/reloc.h +++ b/arch/mips/reloc.h @@ -18,8 +18,6 @@ #define LDSO_ARCH "mips" ISA_SUFFIX ENDIAN_SUFFIX FP_SUFFIX -#define TPOFF_K (-0x7000) - #define REL_SYM_OR_REL R_MIPS_REL32 #define REL_PLT R_MIPS_JUMP_SLOT #define REL_COPY R_MIPS_COPY diff --git a/arch/mips64/reloc.h b/arch/mips64/reloc.h index 145d8b0b..6699606e 100644 --- a/arch/mips64/reloc.h +++ b/arch/mips64/reloc.h @@ -18,8 +18,6 @@ #define LDSO_ARCH "mips64" ISA_SUFFIX ENDIAN_SUFFIX FP_SUFFIX -#define TPOFF_K (-0x7000) - #define REL_SYM_OR_REL 4611 #define REL_PLT R_MIPS_JUMP_SLOT #define REL_COPY R_MIPS_COPY diff --git a/arch/mipsn32/reloc.h b/arch/mipsn32/reloc.h index bf00bd6a..05b72e1b 100644 --- a/arch/mipsn32/reloc.h +++ b/arch/mipsn32/reloc.h @@ -18,8 +18,6 @@ #define LDSO_ARCH "mipsn32" ISA_SUFFIX ENDIAN_SUFFIX FP_SUFFIX -#define TPOFF_K (-0x7000) - #define REL_SYM_OR_REL R_MIPS_REL32 #define REL_PLT R_MIPS_JUMP_SLOT #define REL_COPY R_MIPS_COPY diff --git a/arch/or1k/reloc.h b/arch/or1k/reloc.h index 20d407b6..8b4af859 100644 --- a/arch/or1k/reloc.h +++ b/arch/or1k/reloc.h @@ -1,7 +1,5 @@ #define LDSO_ARCH "or1k" -#define TPOFF_K (-16) - #define REL_SYMBOLIC R_OR1K_32 #define REL_GOT R_OR1K_GLOB_DAT #define REL_PLT R_OR1K_JMP_SLOT diff --git a/arch/powerpc/reloc.h b/arch/powerpc/reloc.h index fdfbf827..6b37b247 100644 --- a/arch/powerpc/reloc.h +++ b/arch/powerpc/reloc.h @@ -6,8 +6,6 @@ #define LDSO_ARCH "powerpc" FP_SUFFIX -#define TPOFF_K (-0x7000) - #define REL_SYMBOLIC R_PPC_ADDR32 #define REL_USYMBOLIC R_PPC_UADDR32 #define REL_GOT R_PPC_GLOB_DAT diff --git a/arch/powerpc64/reloc.h b/arch/powerpc64/reloc.h index 2f1bba05..8f5e6679 100644 --- a/arch/powerpc64/reloc.h +++ b/arch/powerpc64/reloc.h @@ -6,8 +6,6 @@ #define LDSO_ARCH "powerpc64" ENDIAN_SUFFIX -#define TPOFF_K (-0x7000) - #define REL_SYMBOLIC R_PPC64_ADDR64 #define REL_USYMBOLIC R_PPC64_UADDR64 #define REL_GOT R_PPC64_GLOB_DAT diff --git a/arch/riscv32/reloc.h b/arch/riscv32/reloc.h index 59d15f17..f7077085 100644 --- a/arch/riscv32/reloc.h +++ b/arch/riscv32/reloc.h @@ -8,8 +8,6 @@ #define LDSO_ARCH "riscv32" RISCV_FP_SUFFIX -#define TPOFF_K 0 - #define REL_SYMBOLIC R_RISCV_32 #define REL_PLT R_RISCV_JUMP_SLOT #define REL_RELATIVE R_RISCV_RELATIVE diff --git a/arch/riscv64/reloc.h b/arch/riscv64/reloc.h index 7c7c0611..f29cf7fb 100644 --- a/arch/riscv64/reloc.h +++ b/arch/riscv64/reloc.h @@ -8,8 +8,6 @@ #define LDSO_ARCH "riscv64" RISCV_FP_SUFFIX -#define TPOFF_K 0 - #define REL_SYMBOLIC R_RISCV_64 #define REL_PLT R_RISCV_JUMP_SLOT #define REL_RELATIVE R_RISCV_RELATIVE diff --git a/arch/sh/reloc.h b/arch/sh/reloc.h index 17b1a9a9..65b748e2 100644 --- a/arch/sh/reloc.h +++ b/arch/sh/reloc.h @@ -18,8 +18,6 @@ #define LDSO_ARCH "sh" ENDIAN_SUFFIX FP_SUFFIX ABI_SUFFIX -#define TPOFF_K 0 - #define REL_SYMBOLIC R_SH_DIR32 #define REL_OFFSET R_SH_REL32 #define REL_GOT R_SH_GLOB_DAT diff --git a/ldso/dynlink.c b/ldso/dynlink.c index 10471b23..0d43f27b 100644 --- a/ldso/dynlink.c +++ b/ldso/dynlink.c @@ -507,7 +507,7 @@ static void do_relocs(struct dso *dso, size_t *rel, size_t rel_size, size_t stri break; #ifdef TLS_ABOVE_TP case REL_TPOFF: - *reloc_addr = tls_val + def.dso->tls.offset + TPOFF_K + addend; + *reloc_addr = tls_val + def.dso->tls.offset - TP_OFFSET + addend; break; #else case REL_TPOFF: @@ -537,7 +537,7 @@ static void do_relocs(struct dso *dso, size_t *rel, size_t rel_size, size_t stri reloc_addr[0] = (size_t)__tlsdesc_static; #ifdef TLS_ABOVE_TP reloc_addr[1] = tls_val + def.dso->tls.offset - + TPOFF_K + addend; + - TP_OFFSET + addend; #else reloc_addr[1] = tls_val - def.dso->tls.offset + addend; -- 2.52.0