~ruther/guix-local

f8badf151b4d2d966a1ebeba0345dfc9e4564d01 — Mark H Weaver 10 years ago 56eba3d
gnu: commencement: Use our Binutils as soon as possible.

* gnu/packages/commencement.scm (binutils-boot0)[arguments]: Add
  'add-symlinks' phase.
1 files changed, 23 insertions(+), 4 deletions(-)

M gnu/packages/commencement.scm
M gnu/packages/commencement.scm => gnu/packages/commencement.scm +23 -4
@@ 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