elif re.match('aarch64$', a): return 'AArch64'
elif re.match('aarch64_be$', a): return 'AArch64'
elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips'
- elif re.match('riscv32$', a): return 'riscv32'
- elif re.match('riscv64$', a): return 'riscv64'
+ elif re.match('riscv32$', a): return 'RISCV'
+ elif re.match('riscv64$', a): return 'RISCV'
elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC'
- elif re.match('loongarch64$', a): return 'loongarch64'
+ elif re.match('loongarch64$', a): return 'LoongArch'
else:
bb.note("'%s' is not a primary llvm architecture" % a)
return ""
# Default to build all OE-Core supported target arches (user overridable).
# Gennerally setting LLVM_TARGETS_TO_BUILD = "" in local.conf is ok in most simple situations
# where only one target architecture is needed along with just one build arch (usually X86)
-#
+# Core tier targets:
+# AArch64;AMDGPU;ARM;AVR;BPF;Hexagon;Lanai;LoongArch;Mips;MSP430;NVPTX;PowerPC;RISCV;Sparc;SPIRV;SystemZ;VE;WebAssembly;X86;XCore
+# Known experimental targets: ARC;CSKY;DirectX;M68k;Xtensa
+
LLVM_TARGETS_TO_BUILD ?= "AMDGPU;AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86;LoongArch;NVPTX;SPIRV"
+LLVM_TARGETS_TO_BUILD:class-target ?= "${@get_clang_host_arch(bb, d)};AMDGPU;BPF;NVPTX;SPIRV"
LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= ""
-DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \
-DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \
-DCMAKE_STRIP=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-strip \
- -DLLVM_TARGET_ARCH=${@get_clang_target_arch(bb, d)} \
+ -DLLVM_TARGET_ARCH=${HOST_ARCH} \
-DLLVM_DEFAULT_TARGET_TRIPLE=${TARGET_SYS}${HF} \
-DLLVM_HOST_TRIPLE=${TARGET_SYS}${HF} \
-DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \