[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/06: gnu: llvm: Let it cross-compile.
From: |
guix-commits |
Subject: |
02/06: gnu: llvm: Let it cross-compile. |
Date: |
Mon, 27 Sep 2021 14:37:38 -0400 (EDT) |
mothacehe pushed a commit to branch core-updates-frozen
in repository guix.
commit 211c3ac4239e05fc98aa5577d65b96ba6aef8d2b
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Thu Sep 23 23:08:25 2021 +0200
gnu: llvm: Let it cross-compile.
The derivation when compiling natively remains the same,
so this doesn't cause any rebuilds.
* gnu/packages/llvm.scm (llvm-12)[arguments]<#:configure-flags>: Set
LLVM_TABLEGEN, LLVM_DEFAULT_TARGET_TRIPLE, LLVM_TARGET_ARCH and
LLVM_TARGETS_TO_BUILD when cross-compiling.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
---
gnu/packages/llvm.scm | 33 ++++++++++++++++++++++++++-------
1 file changed, 26 insertions(+), 7 deletions(-)
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 7cfa02e..3d62965 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net>
;;;
@@ -39,6 +40,7 @@
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix memoization)
#:use-module (guix utils)
@@ -498,13 +500,30 @@ output), and Binutils.")
(propagated-inputs
`(("zlib" ,zlib))) ;to use output from llvm-config
(arguments
- `(#:configure-flags '("-DCMAKE_SKIP_BUILD_RPATH=FALSE"
- "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
- "-DBUILD_SHARED_LIBS:BOOL=TRUE"
- "-DLLVM_ENABLE_FFI:BOOL=TRUE"
- "-DLLVM_REQUIRES_RTTI=1" ; For some third-party
utilities
- "-DLLVM_INSTALL_UTILS=ON") ; Needed for rustc.
-
+ ;; TODO(core-updates): Unconditionally use quasiquote
+ `(#:configure-flags
+ ,#~(#$(if (%current-target-system)
+ #~quasiquote
+ #~quote)
+ ;; These options are required for cross-compiling LLVM according to
+ ;; https://llvm.org/docs/HowToCrossCompileLLVM.html.
+ (#$@(if (%current-target-system)
+ #~(,(string-append "-DLLVM_TABLEGEN="
+ #+(file-append this-package
+ "/bin/llvm-tblgen"))
+ #$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
+ (%current-target-system))
+ #$(string-append "-DLLVM_TARGET_ARCH="
+ (system->llvm-target))
+ #$(string-append "-DLLVM_TARGETS_TO_BUILD="
+ (system->llvm-target)))
+ #~())
+ "-DCMAKE_SKIP_BUILD_RPATH=FALSE"
+ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
+ "-DBUILD_SHARED_LIBS:BOOL=TRUE"
+ "-DLLVM_ENABLE_FFI:BOOL=TRUE"
+ "-DLLVM_REQUIRES_RTTI=1" ; For some third-party utilities
+ "-DLLVM_INSTALL_UTILS=ON")) ; Needed for rustc.
;; Don't use '-g' during the build, to save space.
#:build-type "Release"
#:phases
- branch core-updates-frozen updated (7c5f01d -> 02c4344), guix-commits, 2021/09/27
- 03/06: gnu: xev: Pass --disable-malloc0returnsnull when cross-compiling., guix-commits, 2021/09/27
- 04/06: gnu: libxv: Pass --disable-malloc0returnsnull when cross-compiling., guix-commits, 2021/09/27
- 02/06: gnu: llvm: Let it cross-compile.,
guix-commits <=
- 01/06: gnu: pkg-config: Fix typo in search paths., guix-commits, 2021/09/27
- 05/06: gnu: libxvmc: Pass --disable-malloc0returnsnull when cross-compiling., guix-commits, 2021/09/27
- 06/06: gnu: gusb: Don't build introspection data when cross-compiling., guix-commits, 2021/09/27