Commit | Line | Data |
---|---|---|
0b652851 JN |
1 | We want to allow builds in chroots that lack /bin/sh. Thus, system(3) |
2 | and popen(3) need to be tweaked to use the right shell. For the bootstrap | |
3 | glibc, we just use whatever `sh' can be found in $PATH. The final glibc | |
4 | instead uses the hard-coded absolute file name of `bash'. | |
5 | ||
6 | --- a/sysdeps/posix/system.c | |
7 | +++ b/sysdeps/posix/system.c | |
8 | @@ -134,7 +134,7 @@ do_system (const char *line) | |
9 | INIT_LOCK (); | |
10 | ||
11 | /* Exec the shell. */ | |
12 | - (void) __execve (SHELL_PATH, (char *const *) new_argv, __environ); | |
13 | + (void) __execvpe (SHELL_NAME, (char *const *) new_argv, __environ); | |
14 | _exit (127); | |
15 | } | |
16 | else if (pid < (pid_t) 0) | |
17 | ||
18 | --- a/libio/iopopen.c | |
19 | +++ b/libio/iopopen.c | |
20 | @@ -145,7 +145,7 @@ _IO_new_proc_open (fp, command, mode) | |
21 | _IO_close (fd); | |
22 | } | |
23 | ||
24 | - _IO_execl ("/bin/sh", "sh", "-c", command, (char *) 0); | |
25 | + execlp ("sh", "sh", "-c", command, (char *) 0); | |
26 | _IO__exit (127); | |
27 | } | |
28 | _IO_close (child_end); | |
29 | ||
30 |