diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-10-12 15:01:50 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-10-12 15:18:25 +0200 |
commit | dab669e07584409d9c9a9dc2afa1c108aa948097 (patch) | |
tree | 37020a81fb24aee9b5ee68cf62ef06985c5f4779 | |
parent | 099dbc4fd332d27a5010f17093f1d6b09d26212e (diff) | |
download | guix-dab669e07584409d9c9a9dc2afa1c108aa948097.tar guix-dab669e07584409d9c9a9dc2afa1c108aa948097.tar.gz |
gnu: ld-wrapper: Memoize.
The command:
guix graph -e '(@@ (gnu packages commencement) coreutils-final)'
now shows 93 nodes (992 edges) instead of 176 nodes (1241 edges).
* gnu/packages/commencement.scm (ld-wrapper-boot0): Use 'mlambda'
instead of 'lambda'.
(ld-wrapper-boot3): Likewise.
-rw-r--r-- | gnu/packages/commencement.scm | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index f234fa0a8a..d113acaba8 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1942,15 +1942,16 @@ the bootstrap environment." (delete 'set-TZDIR))) ((#:tests? _ #f) #f)))))) -(define (ld-wrapper-boot0) - ;; We need this so binaries on Hurd will have libmachuser and libhurduser - ;; in their RUNPATH, otherwise validate-runpath will fail. - (make-ld-wrapper "ld-wrapper-boot0" - #:target boot-triplet - #:binutils binutils-boot0 - #:guile %bootstrap-guile - #:bash (car (assoc-ref (%boot0-inputs) "bash")) - #:guile-for-build %bootstrap-guile)) +(define ld-wrapper-boot0 + (mlambda () + ;; We need this so binaries on Hurd will have libmachuser and libhurduser + ;; in their RUNPATH, otherwise validate-runpath will fail. + (make-ld-wrapper "ld-wrapper-boot0" + #:target boot-triplet + #:binutils binutils-boot0 + #:guile %bootstrap-guile + #:bash (car (assoc-ref (%boot0-inputs) "bash")) + #:guile-for-build %bootstrap-guile))) (define (%boot1-inputs) ;; 2nd stage inputs. @@ -2238,13 +2239,14 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" ,@(package-arguments zlib))) (inputs (%boot2-inputs)))) -(define (ld-wrapper-boot3) - ;; A linker wrapper that uses the bootstrap Guile. - (make-ld-wrapper "ld-wrapper-boot3" - #:binutils binutils-final - #:guile %bootstrap-guile - #:bash (car (assoc-ref (%boot2-inputs) "bash")) - #:guile-for-build %bootstrap-guile)) +(define ld-wrapper-boot3 + (mlambda () + ;; A linker wrapper that uses the bootstrap Guile. + (make-ld-wrapper "ld-wrapper-boot3" + #:binutils binutils-final + #:guile %bootstrap-guile + #:bash (car (assoc-ref (%boot2-inputs) "bash")) + #:guile-for-build %bootstrap-guile))) (define gcc-final ;; The final GCC. |