Upstream commit: fffc2df8a3e2c8cda2991063d23086360268b777 - i386: Provide GLIBC_ABI_GNU_TLS symbol version [BZ #33221] - i386: Update ___tls_get_addr to preserve vector registers - Extend struct r_debug to support multiple namespaces (RHEL-101985) - Fix a potential crash in the dynamic loader when processing specific symbol versions (RHEL-109683) - Signal la_objopen for ld.so with dlmopen (RHEL-109693) - Switch to main malloc after final ld.so self-relocation (RHEL-109703) - Prevent ld.so from asserting and crashing during audited library loads (RHEL-109702) - x86-64: Provide GLIBC_ABI_DT_X86_64_PLT symbol version (RHEL-109621) - x86-64, i386: Provide GLIBC_ABI_GNU2_TLS symbol version (RHEL-109625) - Ensure fallback initialization of ctype TLS data pointers to fix segfaults in programs using dlmopen or auditors (RHEL-72018) - Handle load segment gaps in _dl_find_object (RHEL-104854) - AArch64: Improve codegen in SVE log1p - AArch64: Optimize inverse trig functions - AArch64: Avoid memset ifunc in cpu-features.c [BZ #33112] Resolves: RHEL-109536 Resolves: RHEL-72018 Resolves: RHEL-101985 Resolves: RHEL-104854 Resolves: RHEL-109621 Resolves: RHEL-109625 Resolves: RHEL-109683 Resolves: RHEL-109693 Resolves: RHEL-109702 Resolves: RHEL-109703
41 lines
1.8 KiB
Diff
41 lines
1.8 KiB
Diff
commit 20d2d69a2fcb3357127bea4536c8c85b183dc3b9
|
|
Author: Jens Remus <jremus@linux.ibm.com>
|
|
Date: Fri Jul 25 15:40:03 2025 +0200
|
|
|
|
Use TLS initial-exec model for __libc_tsd_CTYPE_* thread variables [BZ #33234]
|
|
|
|
Commit 10a66a8e421b ("Remove <libc-tsd.h>") removed the TLS initial-exec
|
|
(IE) model attribute from the __libc_tsd_CTYPE_* thread variable declarations
|
|
and definitions. Commit a894f04d8776 ("Optimize __libc_tsd_* thread
|
|
variable access") restored it on declarations.
|
|
|
|
Restore the TLS initial-exec model attribute on __libc_tsd_CTYPE_* thread
|
|
variable definitions.
|
|
|
|
This resolves test tst-locale1 failure on s390 32-bit, when using a
|
|
GNU linker without the fix from GNU binutils commit aefebe82dc89
|
|
("IBM zSystems: Fix offset relative to static TLS").
|
|
|
|
Reviewed-by: Florian Weimer <fweimer@redhat.com>
|
|
(cherry picked from commit e5363e6f460c2d58809bf10fc96d70fd1ef8b5b2)
|
|
|
|
diff --git a/ctype/ctype-info.c b/ctype/ctype-info.c
|
|
index 621bd4239c8b4c21..b6cdf7eb667a7118 100644
|
|
--- a/ctype/ctype-info.c
|
|
+++ b/ctype/ctype-info.c
|
|
@@ -24,11 +24,11 @@
|
|
__ctype_init before user code runs, but this does not happen for
|
|
threads in secondary namespaces. With the initializers, secondary
|
|
namespaces at least get locale data from the C locale. */
|
|
-__thread const uint16_t * __libc_tsd_CTYPE_B
|
|
+__thread const uint16_t * __libc_tsd_CTYPE_B attribute_tls_model_ie
|
|
= (const uint16_t *) _nl_C_LC_CTYPE_class + 128;
|
|
-__thread const int32_t * __libc_tsd_CTYPE_TOLOWER
|
|
+__thread const int32_t * __libc_tsd_CTYPE_TOLOWER attribute_tls_model_ie
|
|
= (const int32_t *) _nl_C_LC_CTYPE_tolower + 128;
|
|
-__thread const int32_t * __libc_tsd_CTYPE_TOUPPER
|
|
+__thread const int32_t * __libc_tsd_CTYPE_TOUPPER attribute_tls_model_ie
|
|
= (const int32_t *) _nl_C_LC_CTYPE_toupper + 128;
|
|
|
|
|