diff options
author | Ludovic Courtès <ludo@gnu.org> | 2012-12-13 23:38:32 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2012-12-13 23:38:32 +0100 |
commit | 9d1d434cd07d8a0372b113c2c0efacd2eb6e258a (patch) | |
tree | 593ef61debceb015a049e6c2f021a0582fad2b45 /distro | |
parent | cb1427dd0835379fa1e05af87c1c6ea585d478e3 (diff) | |
download | guix-9d1d434cd07d8a0372b113c2c0efacd2eb6e258a.tar guix-9d1d434cd07d8a0372b113c2c0efacd2eb6e258a.tar.gz |
build-system/gnu: Avoid using /bin/sh.
* guix/build/gnu-build-system.scm (configure): Add `inputs' keyword
parameter. Take Bash from there, falling back to /bin/sh. Set
`CONFIG_SHELL' and `SHELL' to that Bash. Run "bash ./configure"
instead of just "./configure".
* distro/packages/bootstrap.scm (%bootstrap-inputs): Add "bash".
* distro/packages/base.scm (gcc-boot0-wrapped): Use "bash" from
%BOOT1-INPUTS instead of /bin/sh.
Diffstat (limited to 'distro')
-rw-r--r-- | distro/packages/base.scm | 7 | ||||
-rw-r--r-- | distro/packages/bootstrap.scm | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/distro/packages/base.scm b/distro/packages/base.scm index ea6297107f..30bd804b56 100644 --- a/distro/packages/base.scm +++ b/distro/packages/base.scm @@ -774,6 +774,7 @@ identifier SYSTEM." (let* ((binutils (assoc-ref %build-inputs "binutils")) (gcc (assoc-ref %build-inputs "gcc")) (libc (assoc-ref %build-inputs "libc")) + (bash (assoc-ref %build-inputs "bash")) (out (assoc-ref %outputs "out")) (bindir (string-append out "/bin")) (triplet ,(boot-triplet system))) @@ -790,8 +791,9 @@ identifier SYSTEM." ;; the dynamic linker. (call-with-output-file "gcc" (lambda (p) - (format p "#!/bin/sh + (format p "#!~a/bin/bash exec ~a/bin/~a-gcc -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" + bash gcc triplet libc libc ,(glibc-dynamic-linker system)))) @@ -800,7 +802,8 @@ exec ~a/bin/~a-gcc -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" (native-inputs `(("binutils" ,binutils-boot0) ("gcc" ,gcc-boot0) - ("libc" ,glibc-final))) + ("libc" ,glibc-final) + ("bash" ,(assoc-ref %boot1-inputs "bash")))) (inputs '()))) (define %boot2-inputs diff --git a/distro/packages/bootstrap.scm b/distro/packages/bootstrap.scm index 63e8109800..963b6526da 100644 --- a/distro/packages/bootstrap.scm +++ b/distro/packages/bootstrap.scm @@ -366,6 +366,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ `(("libc" ,%bootstrap-glibc) ("gcc" ,%bootstrap-gcc) ("binutils" ,%bootstrap-binutils) - ("coreutils&co" ,%bootstrap-coreutils&co))) + ("coreutils&co" ,%bootstrap-coreutils&co) + + ;; In gnu-build-system.scm, we rely on the availability of Bash. + ("bash" ,%bootstrap-coreutils&co))) ;;; bootstrap.scm ends here |