Archived
1
0
Fork 0

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.
This commit is contained in:
Ludovic Courtès 2019-10-12 15:01:50 +02:00
parent 099dbc4fd3
commit dab669e075
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1942,7 +1942,8 @@ the bootstrap environment."
(delete 'set-TZDIR))) (delete 'set-TZDIR)))
((#:tests? _ #f) #f)))))) ((#:tests? _ #f) #f))))))
(define (ld-wrapper-boot0) (define ld-wrapper-boot0
(mlambda ()
;; We need this so binaries on Hurd will have libmachuser and libhurduser ;; We need this so binaries on Hurd will have libmachuser and libhurduser
;; in their RUNPATH, otherwise validate-runpath will fail. ;; in their RUNPATH, otherwise validate-runpath will fail.
(make-ld-wrapper "ld-wrapper-boot0" (make-ld-wrapper "ld-wrapper-boot0"
@ -1950,7 +1951,7 @@ the bootstrap environment."
#:binutils binutils-boot0 #:binutils binutils-boot0
#:guile %bootstrap-guile #:guile %bootstrap-guile
#:bash (car (assoc-ref (%boot0-inputs) "bash")) #:bash (car (assoc-ref (%boot0-inputs) "bash"))
#:guile-for-build %bootstrap-guile)) #:guile-for-build %bootstrap-guile)))
(define (%boot1-inputs) (define (%boot1-inputs)
;; 2nd stage 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))) ,@(package-arguments zlib)))
(inputs (%boot2-inputs)))) (inputs (%boot2-inputs))))
(define (ld-wrapper-boot3) (define ld-wrapper-boot3
(mlambda ()
;; A linker wrapper that uses the bootstrap Guile. ;; A linker wrapper that uses the bootstrap Guile.
(make-ld-wrapper "ld-wrapper-boot3" (make-ld-wrapper "ld-wrapper-boot3"
#:binutils binutils-final #:binutils binutils-final
#:guile %bootstrap-guile #:guile %bootstrap-guile
#:bash (car (assoc-ref (%boot2-inputs) "bash")) #:bash (car (assoc-ref (%boot2-inputs) "bash"))
#:guile-for-build %bootstrap-guile)) #:guile-for-build %bootstrap-guile)))
(define gcc-final (define gcc-final
;; The final GCC. ;; The final GCC.