diff options
author | David Abdurachmanov <david.abdurachmanov@sifive.com> | 2020-02-25 23:01:08 -0800 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2020-10-16 08:41:47 -0700 |
commit | 3596c70a0635f593340f33c9a88d10afcc14ddd9 (patch) | |
tree | cc370222934098f5cd0e3b8798b1ee801e714efb | |
parent | fbce3226dc57b40b0e53b403de7c187860bbaaf4 (diff) | |
download | meta-clang-3596c70a0635f593340f33c9a88d10afcc14ddd9.tar.gz |
Fix get_clang_arch and LLVM targets
LLVM_TARGET_ARCH must be riscv32 or riscv64, which results in LLVM_NATIVE_ARCH
being RISCV. We cannot pass RISCV to LLVM_TARGET_ARCH as that will cause
"Unknown architecture" error at configure time.
We already have all architectures listed in LLVM_TARGETS_TO_BUILD thus there
is no need to append additional ones. That results in LLVM_NATIVE_ARCH being
listed multiple times, e.g.:
-DLLVM_TARGETS_TO_BUILD='AMDGPU;AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86;RISCV;RISCV;RISCV'
Furthermore get_clang_host_arch(), get_clang_target_arch() and get_clang_arch()
now return riscv32 or riscv64, which is not a valid value for
-DLLVM_TARGETS_TO_BUILD. The valid value is RISCV here.
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | recipes-devtools/clang/clang_git.bb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb index 91de8ab..d223585 100644 --- a/recipes-devtools/clang/clang_git.bb +++ b/recipes-devtools/clang/clang_git.bb | |||
@@ -35,7 +35,8 @@ def get_clang_arch(bb, d, arch_var): | |||
35 | elif re.match('aarch64$', a): return 'AArch64' | 35 | elif re.match('aarch64$', a): return 'AArch64' |
36 | elif re.match('aarch64_be$', a): return 'AArch64' | 36 | elif re.match('aarch64_be$', a): return 'AArch64' |
37 | elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips' | 37 | elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips' |
38 | elif re.match('riscv(32|64)(eb|)$', a): return 'RISCV' | 38 | elif re.match('riscv32$', a): return 'riscv32' |
39 | elif re.match('riscv64$', a): return 'riscv64' | ||
39 | elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC' | 40 | elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC' |
40 | else: | 41 | else: |
41 | bb.note("'%s' is not a primary llvm architecture" % a) | 42 | bb.note("'%s' is not a primary llvm architecture" % a) |
@@ -95,7 +96,6 @@ CMAKE_C_FLAGS_RELEASE;CMAKE_CXX_FLAGS_RELEASE;CMAKE_ASM_FLAGS_RELEASE;\ | |||
95 | # where only one target architecture is needed along with just one build arch (usually X86) | 96 | # where only one target architecture is needed along with just one build arch (usually X86) |
96 | # | 97 | # |
97 | LLVM_TARGETS_TO_BUILD ?= "AMDGPU;AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86" | 98 | LLVM_TARGETS_TO_BUILD ?= "AMDGPU;AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86" |
98 | LLVM_TARGETS_TO_BUILD_append = ";AMDGPU;${@get_clang_host_arch(bb, d)};${@get_clang_target_arch(bb, d)}" | ||
99 | 99 | ||
100 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= "" | 100 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= "" |
101 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD_append = ";${@get_clang_experimental_target_arch(bb, d)}" | 101 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD_append = ";${@get_clang_experimental_target_arch(bb, d)}" |