aboutsummaryrefslogtreecommitdiff
path: root/distro
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-12-13 23:38:32 +0100
committerLudovic Courtès <ludo@gnu.org>2012-12-13 23:38:32 +0100
commit9d1d434cd07d8a0372b113c2c0efacd2eb6e258a (patch)
tree593ef61debceb015a049e6c2f021a0582fad2b45 /distro
parentcb1427dd0835379fa1e05af87c1c6ea585d478e3 (diff)
downloadguix-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.scm7
-rw-r--r--distro/packages/bootstrap.scm5
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