diff options
Diffstat (limited to 'gnu/packages/patches/glibc-2.37-versioned-locpath.patch')
-rw-r--r-- | gnu/packages/patches/glibc-2.37-versioned-locpath.patch | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/gnu/packages/patches/glibc-2.37-versioned-locpath.patch b/gnu/packages/patches/glibc-2.37-versioned-locpath.patch index 0acaeb1e46..8685f2c3b7 100644 --- a/gnu/packages/patches/glibc-2.37-versioned-locpath.patch +++ b/gnu/packages/patches/glibc-2.37-versioned-locpath.patch @@ -1,11 +1,3 @@ -From d73ba2caa10b8e9f51ff4239cc32eeb4e0de4279 Mon Sep 17 00:00:00 2001 -Message-Id: <d73ba2caa10b8e9f51ff4239cc32eeb4e0de4279.1683980025.git.dev@jpoiret.xyz> -From: Josselin Poiret <dev@jpoiret.xyz> -Date: Sat, 13 May 2023 14:10:43 +0200 -Subject: [PATCH] Add versioned locpath - -From: Josselin Poiret <dev@jpoiret.xyz> - The format of locale data can be incompatible between libc versions, and loading incompatible data can lead to 'setlocale' returning EINVAL at best or triggering an assertion failure at worst. See @@ -20,20 +12,8 @@ that variable. So, if GUIX_LOCPATH=/foo:/bar, locale data is searched for in That way, a single 'GUIX_LOCPATH' setting can work even if different libc versions coexist on the system. - -This patch is adapted from the 2.35 patch. - ---- - locale/newlocale.c | 15 ++-------- - locale/setlocale.c | 68 +++++++++++++++++++++++++++++++++++++------- - string/Makefile | 1 + - string/argz-suffix.c | 56 ++++++++++++++++++++++++++++++++++++ - string/argz.h | 10 +++++++ - 5 files changed, 127 insertions(+), 23 deletions(-) - create mode 100644 string/argz-suffix.c - diff --git a/locale/newlocale.c b/locale/newlocale.c -index 108d2428bf..6218e0fa77 100644 +index 108d2428..6218e0fa 100644 --- a/locale/newlocale.c +++ b/locale/newlocale.c @@ -29,6 +29,7 @@ @@ -73,7 +53,7 @@ index 108d2428bf..6218e0fa77 100644 /* Get the names for the locales we are interested in. We either allow a composite name or a single name. */ diff --git a/locale/setlocale.c b/locale/setlocale.c -index dd73fa4248..d8eb799384 100644 +index 6a902faa..2d07a644 100644 --- a/locale/setlocale.c +++ b/locale/setlocale.c @@ -213,12 +213,65 @@ setdata (int category, struct __locale_data *data) @@ -143,7 +123,7 @@ index dd73fa4248..d8eb799384 100644 char *composite; /* Sanity check for CATEGORY argument. */ -@@ -249,17 +302,10 @@ setlocale (int category, const char *locale) +@@ -249,17 +308,10 @@ setlocale (int category, const char *locale) locale_path = NULL; locale_path_len = 0; @@ -165,7 +145,7 @@ index dd73fa4248..d8eb799384 100644 if (category == LC_ALL) diff --git a/string/Makefile b/string/Makefile -index 3eced0d027..a7e68729ad 100644 +index 8cdfd5b0..6b0d606d 100644 --- a/string/Makefile +++ b/string/Makefile @@ -51,6 +51,7 @@ routines := \ @@ -178,7 +158,7 @@ index 3eced0d027..a7e68729ad 100644 bzero \ diff --git a/string/argz-suffix.c b/string/argz-suffix.c new file mode 100644 -index 0000000000..505b0f248c +index 00000000..505b0f24 --- /dev/null +++ b/string/argz-suffix.c @@ -0,0 +1,56 @@ @@ -239,7 +219,7 @@ index 0000000000..505b0f248c +} +weak_alias (__argz_suffix_entries, argz_suffix_entries) diff --git a/string/argz.h b/string/argz.h -index cbc588a8e6..bc6e484c9d 100644 +index cbc588a8..bc6e484c 100644 --- a/string/argz.h +++ b/string/argz.h @@ -108,6 +108,16 @@ extern error_t argz_replace (char **__restrict __argz, @@ -259,6 +239,3 @@ index cbc588a8e6..bc6e484c9d 100644 /* Returns the next entry in ARGZ & ARGZ_LEN after ENTRY, or NULL if there are no more. If entry is NULL, then the first entry is returned. This --- -2.40.1 - |