mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 15:36:20 -05:00
gnu: glibc: Update to 2.38.
* gnu/packages/patches/glibc-2.38-ldd-x86_64.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/base.scm (glibc): Update to 2.38. [source]: Adjust list of patches. [arguments]: Add ‘--enable-crypt’. (glibc-2.35): New variable. Change-Id: I040b724c47d2ee5f90f2deb03a4828e79d1bfc4e
This commit is contained in:
parent
a488866c5f
commit
9dbba02382
4 changed files with 52 additions and 40 deletions
|
@ -1396,6 +1396,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch \
|
%D%/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch \
|
||||||
%D%/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch \
|
%D%/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch \
|
||||||
%D%/packages/patches/glibc-2.37-versioned-locpath.patch \
|
%D%/packages/patches/glibc-2.37-versioned-locpath.patch \
|
||||||
|
%D%/packages/patches/glibc-2.38-ldd-x86_64.patch \
|
||||||
%D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \
|
%D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \
|
||||||
%D%/packages/patches/glibc-hurd-getauxval.patch \
|
%D%/packages/patches/glibc-hurd-getauxval.patch \
|
||||||
%D%/packages/patches/glibc-hurd-gettyent.patch \
|
%D%/packages/patches/glibc-hurd-gettyent.patch \
|
||||||
|
|
|
@ -847,27 +847,25 @@ (define-public glibc
|
||||||
;; version 2.28, GNU/Hurd used a different glibc branch.
|
;; version 2.28, GNU/Hurd used a different glibc branch.
|
||||||
(package
|
(package
|
||||||
(name "glibc")
|
(name "glibc")
|
||||||
(version "2.35")
|
(version "2.38")
|
||||||
(replacement glibc/fixed)
|
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
|
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0bpm1kfi09dxl4c6aanc5c9951fmf6ckkzay60cx7k37dcpp68si"))
|
"1lizxxqbfma5zgmcj0gk5iyk171f2nfvdhbv8rjrkcmjk24rk0pv"))
|
||||||
(patches (search-patches "glibc-ldd-powerpc.patch"
|
(patches (search-patches "glibc-ldd-powerpc.patch"
|
||||||
"glibc-ldd-x86_64.patch"
|
"glibc-2.38-ldd-x86_64.patch"
|
||||||
"glibc-dl-cache.patch"
|
"glibc-dl-cache.patch"
|
||||||
"glibc-versioned-locpath.patch"
|
"glibc-2.37-versioned-locpath.patch"
|
||||||
"glibc-allow-kernel-2.6.32.patch"
|
;; "glibc-allow-kernel-2.6.32.patch"
|
||||||
"glibc-reinstate-prlimit64-fallback.patch"
|
"glibc-reinstate-prlimit64-fallback.patch"
|
||||||
"glibc-supported-locales.patch"
|
"glibc-supported-locales.patch"
|
||||||
"glibc-cross-objdump.patch"
|
"glibc-2.37-hurd-clock_t_centiseconds.patch"
|
||||||
"glibc-cross-objcopy.patch" ;must come 2nd
|
"glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch"
|
||||||
"glibc-hurd-clock_t_centiseconds.patch"
|
|
||||||
"glibc-hurd-clock_gettime_monotonic.patch"
|
|
||||||
"glibc-hurd-mach-print.patch"
|
"glibc-hurd-mach-print.patch"
|
||||||
"glibc-hurd-gettyent.patch"))))
|
"glibc-hurd-gettyent.patch"
|
||||||
|
"glibc-hurd-getauxval.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
|
||||||
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
|
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
|
||||||
|
@ -929,6 +927,10 @@ (define-public glibc
|
||||||
"kernel-headers")
|
"kernel-headers")
|
||||||
"/include")
|
"/include")
|
||||||
|
|
||||||
|
;; Libcrypt and <crypt.h> are deprecated in glibc 2.38 and not
|
||||||
|
;; built by default. Build it to reduce application breakage.
|
||||||
|
"--enable-crypt"
|
||||||
|
|
||||||
;; This is the default for most architectures as of GNU libc 2.26,
|
;; This is the default for most architectures as of GNU libc 2.26,
|
||||||
;; but we specify it explicitly for clarity and consistency. See
|
;; but we specify it explicitly for clarity and consistency. See
|
||||||
;; "kernel-features.h" in the GNU libc for details.
|
;; "kernel-features.h" in the GNU libc for details.
|
||||||
|
@ -1145,6 +1147,30 @@ (define-public glibc-for-fhs
|
||||||
;; Below are old libc versions, which we use mostly to build locale data in
|
;; Below are old libc versions, which we use mostly to build locale data in
|
||||||
;; the old format (which the new libc cannot cope with.)
|
;; the old format (which the new libc cannot cope with.)
|
||||||
|
|
||||||
|
(define-public glibc-2.35
|
||||||
|
(package
|
||||||
|
(inherit glibc)
|
||||||
|
(version "2.35")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0bpm1kfi09dxl4c6aanc5c9951fmf6ckkzay60cx7k37dcpp68si"))
|
||||||
|
(patches (search-patches "glibc-ldd-powerpc.patch"
|
||||||
|
"glibc-ldd-x86_64.patch"
|
||||||
|
"glibc-dl-cache.patch"
|
||||||
|
"glibc-versioned-locpath.patch"
|
||||||
|
"glibc-allow-kernel-2.6.32.patch"
|
||||||
|
"glibc-reinstate-prlimit64-fallback.patch"
|
||||||
|
"glibc-supported-locales.patch"
|
||||||
|
"glibc-cross-objdump.patch"
|
||||||
|
"glibc-cross-objcopy.patch" ;must come 2nd
|
||||||
|
"glibc-hurd-clock_t_centiseconds.patch"
|
||||||
|
"glibc-hurd-clock_gettime_monotonic.patch"
|
||||||
|
"glibc-hurd-mach-print.patch"
|
||||||
|
"glibc-hurd-gettyent.patch"))))))
|
||||||
|
|
||||||
(define-public glibc-2.33
|
(define-public glibc-2.33
|
||||||
(package
|
(package
|
||||||
(inherit glibc)
|
(inherit glibc)
|
||||||
|
|
|
@ -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
|
The format of locale data can be incompatible between libc versions, and
|
||||||
loading incompatible data can lead to 'setlocale' returning EINVAL at best
|
loading incompatible data can lead to 'setlocale' returning EINVAL at best
|
||||||
or triggering an assertion failure at worst. See
|
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
|
That way, a single 'GUIX_LOCPATH' setting can work even if different libc
|
||||||
versions coexist on the system.
|
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
|
diff --git a/locale/newlocale.c b/locale/newlocale.c
|
||||||
index 108d2428bf..6218e0fa77 100644
|
index 108d2428..6218e0fa 100644
|
||||||
--- a/locale/newlocale.c
|
--- a/locale/newlocale.c
|
||||||
+++ b/locale/newlocale.c
|
+++ b/locale/newlocale.c
|
||||||
@@ -29,6 +29,7 @@
|
@@ -29,6 +29,7 @@
|
||||||
|
@ -73,7 +53,7 @@ index 108d2428bf..6218e0fa77 100644
|
||||||
/* Get the names for the locales we are interested in. We either
|
/* Get the names for the locales we are interested in. We either
|
||||||
allow a composite name or a single name. */
|
allow a composite name or a single name. */
|
||||||
diff --git a/locale/setlocale.c b/locale/setlocale.c
|
diff --git a/locale/setlocale.c b/locale/setlocale.c
|
||||||
index dd73fa4248..d8eb799384 100644
|
index 6a902faa..2d07a644 100644
|
||||||
--- a/locale/setlocale.c
|
--- a/locale/setlocale.c
|
||||||
+++ b/locale/setlocale.c
|
+++ b/locale/setlocale.c
|
||||||
@@ -213,12 +213,65 @@ setdata (int category, struct __locale_data *data)
|
@@ -213,12 +213,65 @@ setdata (int category, struct __locale_data *data)
|
||||||
|
@ -143,7 +123,7 @@ index dd73fa4248..d8eb799384 100644
|
||||||
char *composite;
|
char *composite;
|
||||||
|
|
||||||
/* Sanity check for CATEGORY argument. */
|
/* 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 = NULL;
|
||||||
locale_path_len = 0;
|
locale_path_len = 0;
|
||||||
|
|
||||||
|
@ -165,7 +145,7 @@ index dd73fa4248..d8eb799384 100644
|
||||||
|
|
||||||
if (category == LC_ALL)
|
if (category == LC_ALL)
|
||||||
diff --git a/string/Makefile b/string/Makefile
|
diff --git a/string/Makefile b/string/Makefile
|
||||||
index 3eced0d027..a7e68729ad 100644
|
index 8cdfd5b0..6b0d606d 100644
|
||||||
--- a/string/Makefile
|
--- a/string/Makefile
|
||||||
+++ b/string/Makefile
|
+++ b/string/Makefile
|
||||||
@@ -51,6 +51,7 @@ routines := \
|
@@ -51,6 +51,7 @@ routines := \
|
||||||
|
@ -178,7 +158,7 @@ index 3eced0d027..a7e68729ad 100644
|
||||||
bzero \
|
bzero \
|
||||||
diff --git a/string/argz-suffix.c b/string/argz-suffix.c
|
diff --git a/string/argz-suffix.c b/string/argz-suffix.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000..505b0f248c
|
index 00000000..505b0f24
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/string/argz-suffix.c
|
+++ b/string/argz-suffix.c
|
||||||
@@ -0,0 +1,56 @@
|
@@ -0,0 +1,56 @@
|
||||||
|
@ -239,7 +219,7 @@ index 0000000000..505b0f248c
|
||||||
+}
|
+}
|
||||||
+weak_alias (__argz_suffix_entries, argz_suffix_entries)
|
+weak_alias (__argz_suffix_entries, argz_suffix_entries)
|
||||||
diff --git a/string/argz.h b/string/argz.h
|
diff --git a/string/argz.h b/string/argz.h
|
||||||
index cbc588a8e6..bc6e484c9d 100644
|
index cbc588a8..bc6e484c 100644
|
||||||
--- a/string/argz.h
|
--- a/string/argz.h
|
||||||
+++ b/string/argz.h
|
+++ b/string/argz.h
|
||||||
@@ -108,6 +108,16 @@ extern error_t argz_replace (char **__restrict __argz,
|
@@ -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
|
/* 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
|
are no more. If entry is NULL, then the first entry is returned. This
|
||||||
--
|
|
||||||
2.40.1
|
|
||||||
|
|
||||||
|
|
8
gnu/packages/patches/glibc-2.38-ldd-x86_64.patch
Normal file
8
gnu/packages/patches/glibc-2.38-ldd-x86_64.patch
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
By default, 'RTDLLIST' in 'ldd' refers to 'lib64/ld-linux-x86-64.so', whereas
|
||||||
|
it's in 'lib/' for us. This patch fixes that.
|
||||||
|
|
||||||
|
--- glibc-2.38/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
|
||||||
|
+++ glibc-2.38/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
|
||||||
|
@@ -1 +1 @@
|
||||||
|
-s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2\4\6 \264\4-x86-64\6 \2x32\4-x32\6"_
|
||||||
|
+s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2\4\6 \2\4-x86-64\6 \2x32\4-x32\6"_
|
Loading…
Reference in a new issue