unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: 67686@debbugs.gnu.org
Cc: "Ludovic Courtès" <ludo@gnu.org>
Subject: [bug#67686] [PATCH core-updates 3/5] DRAFT gnu: glibc: Update to 2.38.
Date: Thu,  7 Dec 2023 11:22:46 +0100	[thread overview]
Message-ID: <591e6131c16d1d54dfa23291b35bffca81551956.1701943221.git.ludo@gnu.org> (raw)
In-Reply-To: <cover.1701943221.git.ludo@gnu.org>

DRAFT: Two questions:

  1. Can we abandon ‘glibc-allow-kernel-2.6.32’ (CentOS 6)?

  2. Check cross-compilation.

* 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
---
 gnu/local.mk                                  |  1 +
 gnu/packages/base.scm                         | 47 +++++++++++++++----
 .../glibc-2.37-versioned-locpath.patch        | 35 +++-----------
 .../patches/glibc-2.38-ldd-x86_64.patch       |  8 ++++
 4 files changed, 52 insertions(+), 39 deletions(-)
 create mode 100644 gnu/packages/patches/glibc-2.38-ldd-x86_64.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index f1839319c8..7ecc828003 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1304,6 +1304,7 @@ dist_patch_DATA =						\
   %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-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-getauxval.patch		\
   %D%/packages/patches/glibc-hurd-gettyent.patch		\
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index f95ae1b679..c5eac8a2da 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -795,26 +795,25 @@ (define-public glibc
   ;; version 2.28, GNU/Hurd used a different glibc branch.
   (package
    (name "glibc")
-   (version "2.35")
+   (version "2.38")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
             (sha256
              (base32
-              "0bpm1kfi09dxl4c6aanc5c9951fmf6ckkzay60cx7k37dcpp68si"))
+              "1lizxxqbfma5zgmcj0gk5iyk171f2nfvdhbv8rjrkcmjk24rk0pv"))
             (patches (search-patches "glibc-ldd-powerpc.patch"
-                                     "glibc-ldd-x86_64.patch"
+                                     "glibc-2.38-ldd-x86_64.patch"
                                      "glibc-dl-cache.patch"
-                                     "glibc-versioned-locpath.patch"
-                                     "glibc-allow-kernel-2.6.32.patch"
+                                     "glibc-2.37-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-2.37-hurd-clock_t_centiseconds.patch"
+                                     "glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch"
                                      "glibc-hurd-mach-print.patch"
-                                     "glibc-hurd-gettyent.patch"))))
+                                     "glibc-hurd-gettyent.patch"
+                                     "glibc-hurd-getauxval.patch"))))
    (build-system gnu-build-system)
 
    ;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
@@ -876,6 +875,10 @@ (define-public glibc
                                       "kernel-headers")
                            "/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,
             ;; but we specify it explicitly for clarity and consistency.  See
             ;; "kernel-features.h" in the GNU libc for details.
@@ -1083,6 +1086,30 @@ (define-public glibc-for-fhs
 ;; Below are old libc versions, which we use mostly to build locale data in
 ;; 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
   (package
     (inherit glibc)
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
  \f
  /* 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
-
diff --git a/gnu/packages/patches/glibc-2.38-ldd-x86_64.patch b/gnu/packages/patches/glibc-2.38-ldd-x86_64.patch
new file mode 100644
index 0000000000..9db412b5f2
--- /dev/null
+++ b/gnu/packages/patches/glibc-2.38-ldd-x86_64.patch
@@ -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"_
-- 
2.41.0





  parent reply	other threads:[~2023-12-07 10:24 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-07 10:19 [bug#67686] [PATCH core-updates 0/5] Update glibc to 2.38; make C.UTF-8 always available Ludovic Courtès
2023-12-07 10:22 ` [bug#67686] [PATCH core-updates 1/5] gnu: gcc@11: Update to 11.4.0 Ludovic Courtès
2023-12-07 20:11   ` Janneke Nieuwenhuizen
2023-12-07 21:13     ` Ludovic Courtès
2023-12-07 10:22 ` [bug#67686] [PATCH core-updates 2/5] gnu: glibc-utf8-locales: Generalize and use gexps Ludovic Courtès
2023-12-07 10:22 ` Ludovic Courtès [this message]
2023-12-07 10:22 ` [bug#67686] [PATCH core-updates 4/5] gnu: glibc: Install C.UTF-8 locale Ludovic Courtès
2023-12-07 10:30   ` Ludovic Courtès
2023-12-07 20:31     ` Janneke Nieuwenhuizen
2023-12-07 21:12       ` Ludovic Courtès
2023-12-07 21:26     ` Ludovic Courtès
2023-12-09 16:33       ` Efraim Flashner
2023-12-09 21:41         ` Ludovic Courtès
2023-12-10  7:24           ` Efraim Flashner
2023-12-07 10:22 ` [bug#67686] [PATCH core-updates 5/5] gnu: glibc: Ensure C.UTF-8 locale is always found Ludovic Courtès
2023-12-07 22:54 ` [bug#67686] [PATCH core-updates v2 0/7] Update glibc to 2.38; make C.UTF-8 always available Ludovic Courtès
2023-12-07 22:54   ` [bug#67686] [PATCH core-updates v2 1/7] gnu: gcc@11: Update to 11.4.0 Ludovic Courtès
2023-12-08 17:39     ` Janneke Nieuwenhuizen
2023-12-07 22:54   ` [bug#67686] [PATCH core-updates v2 2/7] gnu: glibc-utf8-locales: Generalize and use gexps Ludovic Courtès
2023-12-07 22:54   ` [bug#67686] [PATCH core-updates v2 3/7] gnu: mpfr: Update to 4.2.1 Ludovic Courtès
2023-12-07 22:54   ` [bug#67686] [PATCH core-updates v2 4/7] DRAFT gnu: glibc: Update to 2.38 Ludovic Courtès
2023-12-09 21:44     ` Ludovic Courtès
2023-12-10 10:14       ` Ludovic Courtès
2023-12-07 22:54   ` [bug#67686] [PATCH core-updates v2 5/7] gnu: glibc: Install C.UTF-8 locale Ludovic Courtès
2023-12-07 22:54   ` [bug#67686] [PATCH core-updates v2 6/7] gnu: glibc: Ensure C.UTF-8 locale is always found Ludovic Courtès
2023-12-07 22:54   ` [bug#67686] [PATCH core-updates v2 7/7] gnu: glibc: Improve handling of empty .a files Ludovic Courtès
2023-12-09 14:58   ` bug#67686: [PATCH core-updates v2 0/7] Update glibc to 2.38; make C.UTF-8 always available Ludovic Courtès
2023-12-09 16:37     ` [bug#67686] " Efraim Flashner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=591e6131c16d1d54dfa23291b35bffca81551956.1701943221.git.ludo@gnu.org \
    --to=ludo@gnu.org \
    --cc=67686@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).