guix_mirror_bot pushed a commit to branch core-packages-team
in repository guix.

commit 656a04f7a7a863314bcced5f3165633cf1838be9
Author: Zheng Junjie <[email protected]>
AuthorDate: Wed Jul 29 12:41:13 2026 +0000

    gnu: glibc-for-bootstrap: Fix cross-compilation.
    
    * gnu/local.mk (dist_patch_DATA): Remove glibc-2.41-bootstrap-system.patch
    * gnu/packages/make-bootstrap.scm (glibc-for-bootstrap): simplify patches.
    * gnu/packages/patches/glibc-2.41-bootstrap-system.patch: Remove file.
    * gnu/packages/patches/glibc-bootstrap-system.patch: Adjust for 2.41+.
    
    Change-Id: I388465e583934b89c33e4052906930f21fb6cfd2
---
 gnu/local.mk                                       |  1 -
 gnu/packages/make-bootstrap.scm                    |  6 +-
 .../patches/glibc-2.41-bootstrap-system.patch      | 69 ----------------------
 gnu/packages/patches/glibc-bootstrap-system.patch  | 26 ++++----
 4 files changed, 16 insertions(+), 86 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 76ddfa65458..dfd8da40d5b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1499,7 +1499,6 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/glibc-2.38-ldd-x86_64.patch             \
   %D%/packages/patches/glibc-2.39-git-updates.patch    \
   %D%/packages/patches/glibc-2.40-dl-cache.patch               \
-  %D%/packages/patches/glibc-2.41-bootstrap-system.patch       \
   %D%/packages/patches/glibc-2.41-hurd-local-clock_gettime_MONOTONIC.patch     
\
   %D%/packages/patches/glibc-2.41-ldd-x86_64.patch             \
   %D%/packages/patches/glibc-2.43-hurd-unimplemented-ioctls.patch      \
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 296d6b8e1e7..d2367c7daed 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -75,10 +75,8 @@ for `sh' in $PATH, and without nscd, and with static NSS 
modules."
       (inherit base)
       (source (origin (inherit (package-source base))
                       (patches (append (search-patches
-                                        (match (package-version base)
-                                          ("2.41" 
"glibc-2.41-bootstrap-system.patch")
-                                          (_ "glibc-bootstrap-system.patch")))
-                                   (origin-patches (package-source base))))))
+                                        "glibc-bootstrap-system.patch")
+                                       (origin-patches (package-source 
base))))))
       (arguments
        (substitute-keyword-arguments arguments
          ((#:configure-flags flags)
diff --git a/gnu/packages/patches/glibc-2.41-bootstrap-system.patch 
b/gnu/packages/patches/glibc-2.41-bootstrap-system.patch
deleted file mode 100644
index cdaae7d92ff..00000000000
--- a/gnu/packages/patches/glibc-2.41-bootstrap-system.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-We want to allow builds in chroots that lack /bin/sh.  Thus, system(3)
-and popen(3) need to be tweaked to use the right shell.  For the bootstrap
-glibc, we just use whatever `sh' can be found in $PATH.  The final glibc
-instead uses the hard-coded absolute file name of `bash'.
-
-In addition, status should be initialized to 0 and not -1.
-
-Adapted to glibc-2.41.
-
-diff --git a/libio/iopopen.c b/libio/iopopen.c
-index ebc381ed7c..e0d3ed1bc3 100644
---- a/libio/iopopen.c
-+++ b/libio/iopopen.c
-@@ -106,8 +106,8 @@ spawn_process (posix_spawn_file_actions_t *fa, FILE *fp, 
const char *command,
-       }
-     }
- 
--  err = __posix_spawn (&((_IO_proc_file *) fp)->pid, _PATH_BSHELL, fa, NULL,
-+  err = __posix_spawnp (&((_IO_proc_file *) fp)->pid, "sh", fa, NULL,
-                      (char *const[]){ (char*) "sh", (char*) "-c", (char*) 
"--",
-                      (char *) command, NULL }, __environ);
-   if (err != 0)
-     return err;
-diff --git a/sysdeps/posix/system.c b/sysdeps/posix/system.c
-index a03f478fc7..94da6facf3 100644
---- a/sysdeps/posix/system.c
-+++ b/sysdeps/posix/system.c
-@@ -101,7 +101,7 @@ cancel_handler (void *arg)
- static int
- do_system (const char *line)
- {
--  int status = -1;
-+  int status = 0;
-   int ret;
-   pid_t pid;
-   struct sigaction sa;
-@@ -145,7 +145,7 @@ do_system (const char *line)
-   __posix_spawnattr_setflags (&spawn_attr,
-                             POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK);
- 
--  ret = __posix_spawn (&pid, SHELL_PATH, NULL, &spawn_attr,
-+  ret = __posix_spawnp (&pid, SHELL_NAME, NULL, &spawn_attr,
-                      (char *const[]){ (char *) SHELL_NAME,
-                                       (char *) "-c",
-                                       (char *) line, NULL },
-
---- a/include/spawn.h
-+++ b/include/spawn.h
-@@ -5,6 +5,9 @@
- __typeof (posix_spawn) __posix_spawn;
- libc_hidden_proto (__posix_spawn)
-
-+__typeof (posix_spawnp) __posix_spawnp;
-+libc_hidden_proto (__posix_spawnp)
-+
- __typeof (posix_spawn_file_actions_addclose)
-   __posix_spawn_file_actions_addclose attribute_hidden;
-
---- a/posix/spawnp.c
-+++ b/posix/spawnp.c
-@@ -31,6 +31,7 @@ __posix_spawnp (pid_t *pid, const char *file,
-                   SPAWN_XFLAGS_USE_PATH);
- }
- versioned_symbol (libc, __posix_spawnp, posix_spawnp, GLIBC_2_15);
-+libc_hidden_def (__posix_spawnp)
-
-
- #if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_15)
-
diff --git a/gnu/packages/patches/glibc-bootstrap-system.patch 
b/gnu/packages/patches/glibc-bootstrap-system.patch
index c1d532198e1..cdaae7d92ff 100644
--- a/gnu/packages/patches/glibc-bootstrap-system.patch
+++ b/gnu/packages/patches/glibc-bootstrap-system.patch
@@ -5,24 +5,27 @@ instead uses the hard-coded absolute file name of `bash'.
 
 In addition, status should be initialized to 0 and not -1.
 
+Adapted to glibc-2.41.
+
 diff --git a/libio/iopopen.c b/libio/iopopen.c
-index 4cc405f2de..8842c989c8 100644
+index ebc381ed7c..e0d3ed1bc3 100644
 --- a/libio/iopopen.c
 +++ b/libio/iopopen.c
-@@ -86,7 +86,7 @@ spawn_process (posix_spawn_file_actions_t *fa, FILE *fp, 
const char *command,
+@@ -106,8 +106,8 @@ spawn_process (posix_spawn_file_actions_t *fa, FILE *fp, 
const char *command,
        }
      }
  
--  err = __posix_spawn (&((_IO_proc_file *) fp)->pid, _PATH_BSHELL, fa, 0,
-+  err = __posix_spawnp (&((_IO_proc_file *) fp)->pid, "sh", fa, 0,
+-  err = __posix_spawn (&((_IO_proc_file *) fp)->pid, _PATH_BSHELL, fa, NULL,
++  err = __posix_spawnp (&((_IO_proc_file *) fp)->pid, "sh", fa, NULL,
                       (char *const[]){ (char*) "sh", (char*) "-c", (char*) 
"--",
                       (char *) command, NULL }, __environ);
    if (err != 0)
+     return err;
 diff --git a/sysdeps/posix/system.c b/sysdeps/posix/system.c
-index 488b95163b..56b8a028ae 100644
+index a03f478fc7..94da6facf3 100644
 --- a/sysdeps/posix/system.c
 +++ b/sysdeps/posix/system.c
-@@ -100,7 +100,7 @@ cancel_handler (void *arg)
+@@ -101,7 +101,7 @@ cancel_handler (void *arg)
  static int
  do_system (const char *line)
  {
@@ -31,17 +34,16 @@ index 488b95163b..56b8a028ae 100644
    int ret;
    pid_t pid;
    struct sigaction sa;
-@@ -144,7 +144,7 @@ do_system (const char *line)
+@@ -145,7 +145,7 @@ do_system (const char *line)
    __posix_spawnattr_setflags (&spawn_attr,
                              POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK);
  
--  ret = __posix_spawn (&pid, SHELL_PATH, 0, &spawn_attr,
-+  ret = __posix_spawnp (&pid, SHELL_NAME, 0, &spawn_attr,
+-  ret = __posix_spawn (&pid, SHELL_PATH, NULL, &spawn_attr,
++  ret = __posix_spawnp (&pid, SHELL_NAME, NULL, &spawn_attr,
                       (char *const[]){ (char *) SHELL_NAME,
                                        (char *) "-c",
-                                       (char *) "--",
-diff --git a/include/spawn.h b/include/spawn.h
-index 4a0b1849da..9e47f74391 100644
+                                       (char *) line, NULL },
+
 --- a/include/spawn.h
 +++ b/include/spawn.h
 @@ -5,6 +5,9 @@

Reply via email to