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>
This commit is contained in:
parent
b099e5e980
commit
419e359a5e
1 changed files with 19 additions and 6 deletions
|
@ -85,19 +85,32 @@ (define* (system->llvm-target #:optional
|
|||
"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 @@ (define-public llvm-15
|
|||
#$(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 @@ (define-public llvm-14
|
|||
#$(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 @@ (define-public llvm-12
|
|||
#$(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)))
|
||||
#~())
|
||||
|
|
Loading…
Reference in a new issue