summaryrefslogtreecommitdiff
path: root/gnu/packages/llvm.scm
diff options
context:
space:
mode:
authorEfraim Flashner <[email protected]>2025-01-26 15:52:35 +0200
committerEfraim Flashner <[email protected]>2025-01-26 17:15:52 +0200
commitb821b3bedcfe69d3483d86408a3159b8338b7c61 (patch)
tree44ac5daef12eb2559edf262f73d9d3693d761d30 /gnu/packages/llvm.scm
parent2d1fda2ca9c05fc4745fd3a376bf3192ead69366 (diff)
gnu: llvm-19: Fix cross-building.
* gnu/packages/llvm.scm (llvm-19)[arguments]: When cross-building use an updated set of configure-flags. Change-Id: If29af878c3941aa994850e55c00cd818aab61f49
Diffstat (limited to 'gnu/packages/llvm.scm')
-rw-r--r--gnu/packages/llvm.scm24
1 files changed, 24 insertions, 0 deletions
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 4307d4e909..5e7d927739 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -1630,6 +1630,30 @@ Library.")
(source (llvm-monorepo version))
(arguments
(substitute-keyword-arguments (package-arguments llvm-15)
+ ((#:modules modules '((guix build cmake-build-system)
+ (guix build utils)))
+ (if (%current-target-system)
+ `((ice-9 regex)
+ (srfi srfi-1)
+ (srfi srfi-26)
+ ,@modules)
+ modules))
+ ((#:configure-flags cf #~'())
+ (if (%current-target-system)
+ ;; Use a newer version of llvm-tblgen and add the new
+ ;; configure-flag needed for cross-building.
+ #~(cons* (string-append "-DLLVM_TABLEGEN="
+ #+(file-append this-package
+ "/bin/llvm-tblgen"))
+ (string-append "-DLLVM_NATIVE_TOOL_DIR="
+ #+(file-append this-package "/bin"))
+ (string-append "-DLLVM_HOST_TRIPLE="
+ #$(%current-target-system))
+ (remove
+ (cut string-match
+ "-DLLVM_(DEFAULT_TARGET|TARGET_ARCH|TABLEGEN).*" <>)
+ #$cf))
+ cf))
;; The build daemon goes OOM on i686-linux on this phase.
((#:phases phases #~'%standard-phases)
(if (target-x86-32?)