[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#54239] [PATCH v3 04/10] gnu: Add cross-llvm.
From: |
Julien Lepiller |
Subject: |
[bug#54239] [PATCH v3 04/10] gnu: Add cross-llvm. |
Date: |
Sat, 16 Jul 2022 21:48:01 +0200 |
* gnu/packages/llvm.scm (cross-llvm): New variable.
---
gnu/packages/llvm.scm | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 2aec2925cf..caf8264bef 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -18,7 +18,7 @@
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2021, 2022 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net>
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -76,7 +76,8 @@ (define-module (gnu packages llvm)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
#:export (make-lld-wrapper
- system->llvm-target))
+ system->llvm-target
+ cross-llvm))
(define* (system->llvm-target #:optional
(system (or (and=> (%current-target-system)
@@ -101,6 +102,22 @@ (define* (system->llvm-target #:optional
("i686" => "X86")
("i586" => "X86"))))
+(define (cross-llvm llvm target)
+ "Return a native LLVM package that targets a different system. The resulting
+libraries are running on the host but target a different system by default.
+This packge can be used to control clang's default target."
+ (package
+ (inherit llvm)
+ (arguments
+ (substitute-keyword-arguments (package-arguments llvm)
+ ((#:configure-flags flags)
+ #~(append
+ (list
+ (string-append "-DLLVM_DEFAULT_TARGET_TRIPLE=" #$target)
+ (string-append "-DLLVM_TARGET_ARCH="
+ #$(system->llvm-target (gnu-triplet->nix-system
target))))
+ #$flags))))))
+
(define (llvm-uri component version)
;; LLVM release candidate file names are formatted
'tool-A.B.C-rcN/tool-A.B.CrcN.src.tar.xz'
;; so we specify the version as A.B.C-rcN and delete the hyphen when
referencing the file name.
--
2.37.0
- [bug#54239] [PATCH] gnu: Add cross-clang., Julien Lepiller, 2022/07/16
- [bug#54239] [PATCH v3 01/10] guix: Add build-system transformation for target., Julien Lepiller, 2022/07/16
- [bug#54239] [PATCH v3 03/10] gnu: llvm-9: Fix cross-compilation., Julien Lepiller, 2022/07/16
- [bug#54239] [PATCH v3 04/10] gnu: Add cross-llvm.,
Julien Lepiller <=
- [bug#54239] [PATCH v3 02/10] gnu: clang-runtime: Fix cross-compilation., Julien Lepiller, 2022/07/16
- [bug#54239] [PATCH v3 06/10] gnu: libcxx: Allow cross-compilation., Julien Lepiller, 2022/07/16
- [bug#54239] [PATCH v3 07/10] gnu: libcxxabi-6: Allow cross-compilation., Julien Lepiller, 2022/07/16
- [bug#54239] [PATCH v3 08/10] gnu: Add libcxxabi-9., Julien Lepiller, 2022/07/16
- [bug#54239] [PATCH v3 09/10] gnu: Add libcxx-12., Julien Lepiller, 2022/07/16
- [bug#54239] [PATCH v3 10/10] gnu: Add libcxxabi-12., Julien Lepiller, 2022/07/16
- [bug#54239] [PATCH v3 05/10] gnu: Add cross-clang., Julien Lepiller, 2022/07/16
- [bug#54239] [PATCH] gnu: Add cross-clang., Maxime Devos, 2022/07/19