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
68 lines
2.4 KiB
Diff
68 lines
2.4 KiB
Diff
commit 25c537c3b3933663642874e332c73c6f65e3ddea
|
|
Author: Florian Weimer <fweimer@redhat.com>
|
|
Date: Fri May 16 19:53:09 2025 +0200
|
|
|
|
Use proper extern declaration for _nl_C_LC_CTYPE_{class,toupper,tolower}
|
|
|
|
The existing initializers already contain explicit casts. Keep them
|
|
due to int/uint32_t mismatch.
|
|
|
|
Reviewed-by: Frédéric Bérat <fberat@redhat.com>
|
|
(cherry picked from commit e0c0f856f58ceb68800a964c36c15c606e7a8c4c)
|
|
|
|
diff --git a/ctype/ctype-info.c b/ctype/ctype-info.c
|
|
index 71d1c8e3b4660d54..94e312d91ff76323 100644
|
|
--- a/ctype/ctype-info.c
|
|
+++ b/ctype/ctype-info.c
|
|
@@ -41,10 +41,7 @@ libc_hidden_def (__ctype_init)
|
|
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3)
|
|
|
|
/* Defined in locale/C-ctype.c. */
|
|
-extern const char _nl_C_LC_CTYPE_class[] attribute_hidden;
|
|
extern const char _nl_C_LC_CTYPE_class32[] attribute_hidden;
|
|
-extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden;
|
|
-extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden;
|
|
extern const char _nl_C_LC_CTYPE_class_upper[] attribute_hidden;
|
|
extern const char _nl_C_LC_CTYPE_class_lower[] attribute_hidden;
|
|
extern const char _nl_C_LC_CTYPE_class_alpha[] attribute_hidden;
|
|
diff --git a/include/ctype.h b/include/ctype.h
|
|
index e993adc86da43b7c..ae078a63d355af61 100644
|
|
--- a/include/ctype.h
|
|
+++ b/include/ctype.h
|
|
@@ -63,6 +63,11 @@ __ctype_tolower_loc (void)
|
|
# define __isdigit_l(c, l) ({ int __c = (c); __c >= '0' && __c <= '9'; })
|
|
# endif /* Not __NO_CTYPE. */
|
|
|
|
+/* For use in initializers. */
|
|
+extern const char _nl_C_LC_CTYPE_class[] attribute_hidden;
|
|
+extern const uint32_t _nl_C_LC_CTYPE_toupper[] attribute_hidden;
|
|
+extern const uint32_t _nl_C_LC_CTYPE_tolower[] attribute_hidden;
|
|
+
|
|
# endif /* IS_IN (libc). */
|
|
#endif /* Not _ISOMAC. */
|
|
|
|
diff --git a/locale/xlocale.c b/locale/xlocale.c
|
|
index f2b9d03303e6653d..d11c1cbf8c65ad54 100644
|
|
--- a/locale/xlocale.c
|
|
+++ b/locale/xlocale.c
|
|
@@ -18,18 +18,13 @@
|
|
|
|
#include <locale.h>
|
|
#include "localeinfo.h"
|
|
+#include <ctype.h>
|
|
|
|
#define DEFINE_CATEGORY(category, category_name, items, a) \
|
|
extern struct __locale_data _nl_C_##category;
|
|
#include "categories.def"
|
|
#undef DEFINE_CATEGORY
|
|
|
|
-/* Defined in locale/C-ctype.c. */
|
|
-extern const char _nl_C_LC_CTYPE_class[] attribute_hidden;
|
|
-extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden;
|
|
-extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden;
|
|
-
|
|
-
|
|
const struct __locale_struct _nl_C_locobj attribute_hidden =
|
|
{
|
|
.__locales =
|