summaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
author( <paren@disroot.org>2022-06-24 18:56:28 +0100
committerTobias Geerinckx-Rice <me@tobias.gr>2022-06-19 02:00:00 +0200
commitc67ea330d4cf3abfe59e36669b7c2a7864c5e355 (patch)
treee1beeb91bef2ff968f585b1213cfa7ad3fccce84 /guix
parentc539a13050e4e5469ce9b3d09efb5cabfa5d832b (diff)
build-system/dub: Use the gold linker.
* guix/build-system/dub.scm (default-ld-gold-wrapper): New procedure. (lower): Add a LD-GOLD-WRAPPER to the keyword arguments, and to the resulting bag's… [build-inputs]: …build inputs. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
Diffstat (limited to 'guix')
-rw-r--r--guix/build-system/dub.scm9
1 files changed, 9 insertions, 0 deletions
diff --git a/guix/build-system/dub.scm b/guix/build-system/dub.scm
index 55ad7decb8..8aa93d5b0f 100644
--- a/guix/build-system/dub.scm
+++ b/guix/build-system/dub.scm
@@ -51,6 +51,13 @@
(let ((pkg-config (resolve-interface '(gnu packages pkg-config))))
(module-ref pkg-config 'pkg-config)))
+(define (default-ld-gold-wrapper)
+ "Return the default ld-gold-wrapper package."
+ ;; LDC doesn't work with Guix's default (BFD) linker.
+ ;; Lazily resolve the binding to avoid a circular dependency.
+ (let ((commencement (resolve-interface '(gnu packages commencement))))
+ (module-ref commencement 'ld-gold-wrapper)))
+
(define %dub-build-system-modules
;; Build-side modules imported by default.
`((guix build dub-build-system)
@@ -100,6 +107,7 @@
(ldc (default-ldc))
(dub (default-dub))
(pkg-config (default-pkg-config))
+ (ld-gold-wrapper (default-ld-gold-wrapper))
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
@@ -121,6 +129,7 @@
,@(standard-packages)))
(build-inputs `(("ldc" ,ldc)
("dub" ,dub)
+ ("ld-gold-wrapper" ,ld-gold-wrapper)
,@native-inputs))
(outputs outputs)
(build dub-build)