Subject: [PATCH core-updates 0/5] Update glibc to 2.38; make C.UTF-8 always available

From: Ludovic Courtès <[email-masked]>
Date: Thu, 7 Dec 2023 11:19:52 +0100

Hello fellow core updaters!

Here’s a patch to (1) upgrade glibc on ‘core-updates’, and (2) make the
“C.UTF-8” locale always available.

The upgrade itself will need several iterations so we can check whether
cross-compilation still works, for which we need help from ci.guix.
It removes ‘glibc-allow-kernel-2.6.32.patch’, which no longer applies,
so we’ll have to do a poll to ensure nobody relies on this (this is
mostly for HPC people, who tend to have machines running old and
heavily-patched kernels, but hopefully this particular flavor is now
gone.)

With the upgrade, we should be able to:

  (define-public glibc/hurd glibc)

Perhaps we’ll even get support for x86_64-gnu (!), though IIRC we may
need a couple more patches.

As for #2, it means that:

  setlocale (LC_ALL, "C.UTF-8");

is guaranteed to always succeed.  This is pretty big deal for us
because then we can get rid of most use cases for ‘glibc-utf8-locales’.
The main use of ‘glibc-utf8-locales’ is to ensure that Guile (and other
programs that behave similar) can run in a UTF-8 locale and thus
decode file names & co. according to that locale’s encoding.  We’ll
be able to replace snippets like:

  #~(begin
      (setenv "GUIX_LOCPATH"
              #$(file-append glibc-utf8-locales "/lib/locale"))
      (setlocale LC_ALL "en_US.utf8")
      …)

with:

  #~(begin
      (setlocale LC_ALL "C.UTF-8")
      …)

Thoughts?

Note that I needed Greg’s GCC 11.4.0 upgrade
from <https://issues.guix.gnu.org/66730> as a prerequisite
since libsanitizer in GCC 11.3.0 fails to build with glibc 2.38.

Ludo’.

Greg Hogan (1):
  gnu: gcc@11: Update to 11.4.0.

Ludovic Courtès (4):
  gnu: glibc-utf8-locales: Generalize and use gexps.
  DRAFT gnu: glibc: Update to 2.38.
  gnu: glibc: Install C.UTF-8 locale.
  gnu: glibc: Ensure C.UTF-8 locale is always found.

 gnu/local.mk                                  |   2 +-
 gnu/packages/base.scm                         | 143 ++++++++++++------
 gnu/packages/gcc.scm                          |   7 +-
 .../gcc-10-tree-sra-union-handling.patch      |  33 ----
 .../glibc-2.37-versioned-locpath.patch        |  57 ++++---
 .../patches/glibc-2.38-ldd-x86_64.patch       |   8 +
 6 files changed, 138 insertions(+), 112 deletions(-)
 delete mode 100644 gnu/packages/patches/gcc-10-tree-sra-union-handling.patch
 create mode 100644 gnu/packages/patches/glibc-2.38-ldd-x86_64.patch

base-commit: 69d31a158001f2cb97983bd13f4575f6c9484451
-- 
2.41.0