diff options
author | Mark H Weaver <mhw@netris.org> | 2015-06-08 15:19:28 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2015-06-08 16:14:03 -0400 |
commit | f8badf151b4d2d966a1ebeba0345dfc9e4564d01 (patch) | |
tree | 317eaec3d7153542e55d856324fc837428591161 /gnu/packages/commencement.scm | |
parent | 56eba3d1521e38ef21116ac6502e2c4021836b79 (diff) | |
download | patches-f8badf151b4d2d966a1ebeba0345dfc9e4564d01.tar patches-f8badf151b4d2d966a1ebeba0345dfc9e4564d01.tar.gz |
gnu: commencement: Use our Binutils as soon as possible.
* gnu/packages/commencement.scm (binutils-boot0)[arguments]: Add
'add-symlinks' phase.
Diffstat (limited to 'gnu/packages/commencement.scm')
-rw-r--r-- | gnu/packages/commencement.scm | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index ab166602aa..6cf56badbf 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -139,6 +139,28 @@ (arguments `(#:guile ,%bootstrap-guile #:implicit-inputs? #f + + #:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 ftw)) ; for 'scandir' + #:phases (alist-cons-after + 'install 'add-symlinks + (lambda* (#:key outputs #:allow-other-keys) + ;; The cross-gcc invokes 'as', 'ld', etc, without the + ;; triplet prefix, so add symlinks. + (let ((out (assoc-ref outputs "out")) + (triplet-prefix (string-append ,(boot-triplet) "-"))) + (define (has-triplet-prefix? name) + (string-prefix? triplet-prefix name)) + (define (remove-triplet-prefix name) + (substring name (string-length triplet-prefix))) + (with-directory-excursion (string-append out "/bin") + (for-each (lambda (name) + (symlink name (remove-triplet-prefix name))) + (scandir "." has-triplet-prefix?))) + #t)) + %standard-phases) + ,@(substitute-keyword-arguments (package-arguments binutils) ((#:configure-flags cf) `(cons ,(string-append "--target=" (boot-triplet)) @@ -274,10 +296,7 @@ ;; 2nd stage inputs. `(("gcc" ,gcc-boot0) ("binutils-cross" ,binutils-boot0) - - ;; Keep "binutils" here because the cross-gcc invokes `as', not the - ;; cross-`as'. - ,@%boot0-inputs)) + ,@(alist-delete "binutils" %boot0-inputs))) (define glibc-final-with-bootstrap-bash ;; The final libc, "cross-built". If everything went well, the resulting |