summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-10-12 15:01:50 +0200
committerLudovic Courtès <ludo@gnu.org>2019-10-12 15:18:25 +0200
commitdab669e07584409d9c9a9dc2afa1c108aa948097 (patch)
tree37020a81fb24aee9b5ee68cf62ef06985c5f4779 /gnu/packages
parent099dbc4fd332d27a5010f17093f1d6b09d26212e (diff)
downloadguix-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.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/commencement.scm34
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.