janneke pushed a commit to branch wip-bootstrap
in repository guix.
commit 1998bd66c7b917d677ab2deaddc7874fb4907425
Author: Jan Nieuwenhuizen <[email protected]>
Date: Tue Sep 18 22:25:27 2018 +0200
bootstrap: static-bash-for-glibc: Consider %current-system at run time.
* gnu/packages/commencement.scm (static-bash-for-glibc): Rewrite so
that (%boot1-inputs) is evaluated run time, rather than at load time.
---
gnu/packages/commencement.scm | 54 ++++++++++++++++++++++---------------------
1 file changed, 28 insertions(+), 26 deletions(-)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index ea30694..84d834f 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -630,33 +630,35 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a
\"$@\"~%"
(define static-bash-for-glibc
;; A statically-linked Bash to be used by GLIBC-FINAL in system(3) & co.
- (let* ((gcc (cross-gcc-wrapper gcc-boot0 binutils-boot0
- glibc-final-with-bootstrap-bash
- (car (assoc-ref (%boot1-inputs) "bash"))))
- (bash (package
- (inherit static-bash)
- (arguments
- (substitute-keyword-arguments
- (package-arguments static-bash)
- ((#:guile _ #f)
- '%bootstrap-guile)
- ((#:configure-flags flags '())
- ;; Add a '-L' flag so that the pseudo-cross-ld of
- ;; BINUTILS-BOOT0 can find libc.a.
- `(append ,flags
- (list (string-append "LDFLAGS=-static -L"
- (assoc-ref %build-inputs
- "libc:static")
- "/lib"))))))))
- (inputs `(("gcc" ,gcc)
- ("libc" ,glibc-final-with-bootstrap-bash)
- ("libc:static" ,glibc-final-with-bootstrap-bash "static")
- ,@(fold alist-delete (%boot1-inputs)
- '("gcc" "libc")))))
+ (let ((bash (package
+ (inherit static-bash)
+ (arguments
+ (substitute-keyword-arguments
+ (package-arguments static-bash)
+ ((#:guile _ #f)
+ '%bootstrap-guile)
+ ((#:configure-flags flags '())
+ ;; Add a '-L' flag so that the pseudo-cross-ld of
+ ;; BINUTILS-BOOT0 can find libc.a.
+ `(append ,flags
+ (list (string-append "LDFLAGS=-static -L"
+ (assoc-ref %build-inputs
+ "libc:static")
+ "/lib")))))))))
(package-with-bootstrap-guile
- (package-with-explicit-inputs bash (lambda _ inputs)
- (current-source-location)
- #:guile %bootstrap-guile))))
+ (package-with-explicit-inputs
+ bash
+ (lambda _
+ (let ((gcc (cross-gcc-wrapper gcc-boot0 binutils-boot0
+ glibc-final-with-bootstrap-bash
+ (car (assoc-ref (%boot1-inputs)
"bash")))))
+ `(("gcc" ,gcc)
+ ("libc" ,glibc-final-with-bootstrap-bash)
+ ("libc:static" ,glibc-final-with-bootstrap-bash "static")
+ ,@(fold alist-delete (%boot1-inputs)
+ '("gcc" "libc")))))
+ (current-source-location)
+ #:guile %bootstrap-guile))))
(define gettext-boot0
;; A minimal gettext used during bootstrap.