guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#62438] [PATCH] gnu: llvm: fix riscv64 cross-compile.


From: Z572
Subject: [bug#62438] [PATCH] gnu: llvm: fix riscv64 cross-compile.
Date: Sun, 11 Jun 2023 22:57:08 +0800
User-agent: mu4e 1.10.2; emacs 30.0.50

Ludovic Courtès <ludo@gnu.org> writes:

> Hi,
>
> Z572 <873216071@qq.com> skribis:
>
>> +(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 arch for system is 
>> unknown" system)))))
>> +    (matches ("aarch64"     => "AArch64")
>> +             ("armhf"       => "ARM")
>> +             ("mips64el"    => "Mips")
>> +             ("powerpc"     => "PowerPC")
>> +             ("riscv64"     => "RISCV64")
>> +             ("x86_64"      => "X86_64")
>> +             ("i686"        => "X86")
>> +             ("i586"        => "X86"))))
>
> The only different compared to ‘system->llvm-target’ is “riscv64”
> instead of “riscv”.  Why not add that line to ‘system->llvm-target’
> instead of duplicating it?


```
-- Performing Test HAS_MAYBE_UNINITIALIZED
-- Performing Test HAS_MAYBE_UNINITIALIZED - Success
CMake Error at cmake/config-ix.cmake:502 (message):
  Unknown architecture riscv
Call Stack (most recent call first):
  CMakeLists.txt:776 (include)
```

because `LLVM_TARGETS_TO_BUILD' and `LLVM_TARGET_ARCH' is two
option. The parameters of expectation are different.
but for now, use same procedure `system->llvm-target'.


for llvm 15.0.7

LLVM_TARGETS_TO_BUILD: allow `AArch64 AMDGPU ARC ARM AVR BPF CSKY
DirectX Hexagon Lanai LoongArch M68k MSP430 Mips NVPTX PowerPC RISCV
SPIRV Sparc SystemZ VE WebAssembly X86 XCore`
see https://github.com/llvm/llvm-project/tree/release/15.x/llvm/lib/Target


LLVM_TARGET_ARCH: allow `i[2-6]86 x86 amd64 x86_64 sparc powerrpc ppc64le
aarch64 arm64 arm avr mips xcore msp430 hexagon s390x wasm32 wasm64
riscv32 riscv64 m68k`
see 
https://github.com/llvm/llvm-project/blob/release/15.x/llvm/cmake/config-ix.cmake#L459-#L503


if use same procedure, some target will fail.


>
> Thanks,
> Ludo’.


--
over






reply via email to

[Prev in Thread] Current Thread [Next in Thread]