guix_mirror_bot pushed a commit to branch core-packages-team in repository guix.
commit a8d5c4a6d894306e321ac37b7df90664b7b4962e 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 30f40780d8f..6ac3bb66886 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1500,7 +1500,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 @@
