[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/02: gnu: llvm: Fix riscv64 cross-compilation.
From: |
guix-commits |
Subject: |
02/02: gnu: llvm: Fix riscv64 cross-compilation. |
Date: |
Fri, 20 Oct 2023 05:56:34 -0400 (EDT) |
iyzsong pushed a commit to branch master
in repository guix.
commit 419e359a5e98f546661fc58e3a682378dcc60bca
Author: Z572 <873216071@qq.com>
AuthorDate: Thu Sep 7 18:42:11 2023 +0800
gnu: llvm: Fix riscv64 cross-compilation.
* gnu/packages/llvm.scm (system->llvm-target-arch): New procedure.
(llvm-15,llvm-14,llvm-12): Use It.
(system->llvm-target): Rewrite in terms of 'system->llvm-target-arch'.
Co-authored-by: 宋文武 <iyzsong@member.fsf.org>
---
gnu/packages/llvm.scm | 25 +++++++++++++++++++------
1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index daff67f7f2..cd551f4e02 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -85,19 +85,32 @@
"Return the LLVM target name that corresponds to SYSTEM, a system type such
as \"x86_64-linux\"."
;; See the 'lib/Target' directory of LLVM for a list of supported targets.
+ (match (system->llvm-target-arch system)
+ ("RISCV64" "RISCV")
+ ("X86_64" "X86")
+ (x x)))
+
+(define* (system->llvm-target-arch #:optional
+ (system (or (and=> (%current-target-system)
+ gnu-triplet->nix-system)
+ (%current-system))))
+ "Return the LLVM target arch name that corresponds to SYSTEM, a system type
such
+as \"x86_64-linux\"."
+ ;; See the 'cmake/config-ix.cmake' file of LLVM for a list of supported
targets arch.
+ ;; start with # Determine the native architecture.
(letrec-syntax ((matches (syntax-rules (=>)
((_ (system-prefix => target) rest ...)
(if (string-prefix? system-prefix system)
target
(matches rest ...)))
((_)
- (error "LLVM target for system is unknown"
system)))))
+ (error "LLVM target arch for system is unknown"
system)))))
(matches ("aarch64" => "AArch64")
("armhf" => "ARM")
("mips64el" => "Mips")
("powerpc" => "PowerPC")
- ("riscv" => "RISCV")
- ("x86_64" => "X86")
+ ("riscv64" => "RISCV64")
+ ("x86_64" => "X86_64")
("i686" => "X86")
("i586" => "X86"))))
@@ -598,7 +611,7 @@ output), and Binutils.")
#$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
(%current-target-system))
#$(string-append "-DLLVM_TARGET_ARCH="
- (system->llvm-target))
+ (system->llvm-target-arch))
#$(string-append "-DLLVM_TARGETS_TO_BUILD="
(system->llvm-target)))
'())
@@ -658,7 +671,7 @@ of programming tools as well as libraries with equivalent
functionality.")
#$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
(%current-target-system))
#$(string-append "-DLLVM_TARGET_ARCH="
- (system->llvm-target))
+ (system->llvm-target-arch))
#$(string-append "-DLLVM_TARGETS_TO_BUILD="
(system->llvm-target)))
'())
@@ -901,7 +914,7 @@ Library.")
#$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
(%current-target-system))
#$(string-append "-DLLVM_TARGET_ARCH="
- (system->llvm-target))
+ (system->llvm-target-arch))
#$(string-append "-DLLVM_TARGETS_TO_BUILD="
(system->llvm-target)))
#~())