summary refs log tree commit diff
path: root/gnu/packages/patches/glibc-bootstrap-system.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/glibc-bootstrap-system.patch')
-rw-r--r--gnu/packages/patches/glibc-bootstrap-system.patch34
1 files changed, 16 insertions, 18 deletions
diff --git a/gnu/packages/patches/glibc-bootstrap-system.patch b/gnu/packages/patches/glibc-bootstrap-system.patch
index addeed6dbd..39eb47ef26 100644
--- a/gnu/packages/patches/glibc-bootstrap-system.patch
+++ b/gnu/packages/patches/glibc-bootstrap-system.patch
@@ -5,26 +5,24 @@ instead uses the hard-coded absolute file name of `bash'.
 
 --- a/sysdeps/posix/system.c
 +++ b/sysdeps/posix/system.c
-@@ -134,7 +134,7 @@ do_system (const char *line)
-       INIT_LOCK ();
+@@ -140,7 +140,7 @@ do_system (const char *line)
+   __posix_spawnattr_setflags (&spawn_attr,
+ 			      POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK);
  
-       /* Exec the shell.  */
--      (void) __execve (SHELL_PATH, (char *const *) new_argv, __environ);
-+      (void) __execvpe (SHELL_NAME, (char *const *) new_argv, __environ);
-       _exit (127);
-     }
-   else if (pid < (pid_t) 0)
-
+-  status = __posix_spawn (&pid, SHELL_PATH, 0, &spawn_attr,
++  status = posix_spawnp (&pid, SHELL_NAME, 0, &spawn_attr,
+ 			  (char *const[]){ (char*) SHELL_NAME,
+ 					   (char*) "-c",
+ 					   (char *) line, NULL },
 --- a/libio/iopopen.c
 +++ b/libio/iopopen.c
-@@ -145,7 +145,7 @@ _IO_new_proc_open (fp, command, mode)
- 	    __close_nocancel (fd);
- 	}
- 
--      execl ("/bin/sh", "sh", "-c", command, (char *) 0);
-+      execlp ("sh", "sh", "-c", command, (char *) 0);
-       _exit (127);
+@@ -85,7 +85,7 @@ spawn_process (posix_spawn_file_actions_t *fa, FILE *fp, const char *command,
+ 	return false;
      }
-   __close_nocancel (child_end);
-
+ 
+-  if (__posix_spawn (&((_IO_proc_file *) fp)->pid, _PATH_BSHELL, fa, 0,
++  if (posix_spawnp (&((_IO_proc_file *) fp)->pid, "sh", fa, 0,
+ 		     (char *const[]){ (char*) "sh", (char*) "-c",
+ 		     (char *) command, NULL }, __environ) != 0)
+     return false;