summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-12-19 23:49:31 +0100
committerLudovic Courtès <ludo@gnu.org>2012-12-20 01:38:54 +0100
commitdfb53ee2324689f5f7843b87c7dfd6cdd4eb49bc (patch)
treeb8e3d265271208799379fb60241470ec25575631
parentea8fbbf2f2d8beccad1c7a98077c0a31fb40e578 (diff)
downloadguix-dfb53ee2324689f5f7843b87c7dfd6cdd4eb49bc.tar.gz
distro: ld-wrapper: Use the current Bash instead of /bin/sh.
* distro/packages/ld-wrapper.scm: Use @BASH@ in shebang.  Change module
  name to (gnu build-support ld-wrapper).
* distro/packages/base.scm (ld-wrapper-boot3): Substitute @BASH@.
  (ld-wrapper): Use BASH-FINAL.
-rw-r--r--distro/packages/base.scm14
-rw-r--r--distro/packages/ld-wrapper.scm6
2 files changed, 13 insertions, 7 deletions
diff --git a/distro/packages/base.scm b/distro/packages/base.scm
index 4bd8070827..5e7380581d 100644
--- a/distro/packages/base.scm
+++ b/distro/packages/base.scm
@@ -872,9 +872,10 @@ exec ~a/bin/~a-gcc -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
     (source #f)
     (build-system trivial-build-system)
     (inputs `(("binutils" ,binutils-final)
-              ("guile"   ,%bootstrap-guile)
-              ("wrapper" ,(search-path %load-path
-                                       "distro/packages/ld-wrapper.scm"))))
+              ("guile"    ,%bootstrap-guile)
+              ("bash"     ,@(assoc-ref %boot2-inputs "bash"))
+              ("wrapper"  ,(search-path %load-path
+                                        "distro/packages/ld-wrapper.scm"))))
     (arguments
      `(#:guile ,%bootstrap-guile
        #:modules ((guix build utils))
@@ -898,6 +899,9 @@ exec ~a/bin/~a-gcc -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
                        (("@GUILE@")
                         (string-append (assoc-ref %build-inputs "guile")
                                        "/bin/guile"))
+                       (("@BASH@")
+                        (string-append (assoc-ref %build-inputs "bash")
+                                       "/bin/bash"))
                        (("@LD@")
                         (string-append (assoc-ref %build-inputs "binutils")
                                        "/bin/ld")))
@@ -946,7 +950,9 @@ store.")
   (package (inherit ld-wrapper-boot3)
     (name "ld-wrapper")
     (inputs `(("guile" ,guile-final)
-              ,@(alist-delete "guile" (package-inputs ld-wrapper-boot3))))))
+              ("bash"  ,bash-final)
+              ,@(fold alist-delete (package-inputs ld-wrapper-boot3)
+                      '("guile" "bash"))))))
 
 (define-public %final-inputs
   ;; Final derivations used as implicit inputs by `gnu-build-system'.
diff --git a/distro/packages/ld-wrapper.scm b/distro/packages/ld-wrapper.scm
index 9b8a09f067..5c98375814 100644
--- a/distro/packages/ld-wrapper.scm
+++ b/distro/packages/ld-wrapper.scm
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!@BASH@
 # -*- mode: scheme; coding: utf-8; -*-
 
 # XXX: We have to go through Bash because there's no command-line switch to
@@ -7,7 +7,7 @@
 # Use `load-compiled' because `load' (and `-l') doesn't otherwise load our
 # .go file (see <http://bugs.gnu.org/12519>).
 
-main="(@ (distro packages ld-wrapper) ld-wrapper)"
+main="(@ (gnu build-support ld-wrapper) ld-wrapper)"
 exec @GUILE@ -c "(load-compiled \"$0.go\") (apply $main (cdr (command-line)))" "$@"
 !#
 ;;; Guix --- Nix package management from Guile.         -*- coding: utf-8 -*-
@@ -28,7 +28,7 @@ exec @GUILE@ -c "(load-compiled \"$0.go\") (apply $main (cdr (command-line)))" "
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with Guix.  If not, see <http://www.gnu.org/licenses/>.
 
-(define-module (distro packages ld-wrapper)
+(define-module (gnu build-support ld-wrapper)
   #:use-module (srfi srfi-1)
   #:export (ld-wrapper))