summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/clang/clang_git.bb
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2025-05-07 11:58:27 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-05-09 07:10:11 +0100
commit777bcd1a080cc6cc4e9ea7f03020173d3049e446 (patch)
tree0abddf787731c5ea40c5a5a851c8c59480d000c9 /meta/recipes-devtools/clang/clang_git.bb
parentb741bca92950894a363dd2eeb0a58b76bb8f2b4f (diff)
downloadpoky-777bcd1a080cc6cc4e9ea7f03020173d3049e446.tar.gz
clang: Build limited targets for target clang recipe
On target its sufficient to build what mesa needs + one host target It should speed up the build. Fix bug in function mapping target architecture to LLVM backend Reduces size of libLLVM Before - 131M May 6 20:42 ./clang-libllvm/usr/lib/libLLVM.so.20.1 After - 93M May 6 18:47 ./clang-libllvm/usr/lib/libLLVM.so.20.1 (From OE-Core rev: 0e1c55d2631200f8c9890eac8d26c404f28862d3) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/clang/clang_git.bb')
-rw-r--r--meta/recipes-devtools/clang/clang_git.bb14
1 files changed, 9 insertions, 5 deletions
diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb
index c93554622f..b41b700292 100644
--- a/meta/recipes-devtools/clang/clang_git.bb
+++ b/meta/recipes-devtools/clang/clang_git.bb
@@ -35,10 +35,10 @@ 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('riscv32$', a): return 'riscv32' 38 elif re.match('riscv32$', a): return 'RISCV'
39 elif re.match('riscv64$', a): return 'riscv64' 39 elif re.match('riscv64$', a): return 'RISCV'
40 elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC' 40 elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC'
41 elif re.match('loongarch64$', a): return 'loongarch64' 41 elif re.match('loongarch64$', a): return 'LoongArch'
42 else: 42 else:
43 bb.note("'%s' is not a primary llvm architecture" % a) 43 bb.note("'%s' is not a primary llvm architecture" % a)
44 return "" 44 return ""
@@ -115,8 +115,12 @@ LLVM_BUILD_TOOLS;LLVM_USE_HOST_TOOLS;LLVM_CONFIG_PATH;LLVM_EXTERNAL_SPIRV_HEADER
115# Default to build all OE-Core supported target arches (user overridable). 115# Default to build all OE-Core supported target arches (user overridable).
116# Gennerally setting LLVM_TARGETS_TO_BUILD = "" in local.conf is ok in most simple situations 116# Gennerally setting LLVM_TARGETS_TO_BUILD = "" in local.conf is ok in most simple situations
117# where only one target architecture is needed along with just one build arch (usually X86) 117# where only one target architecture is needed along with just one build arch (usually X86)
118# 118# Core tier targets:
119# AArch64;AMDGPU;ARM;AVR;BPF;Hexagon;Lanai;LoongArch;Mips;MSP430;NVPTX;PowerPC;RISCV;Sparc;SPIRV;SystemZ;VE;WebAssembly;X86;XCore
120# Known experimental targets: ARC;CSKY;DirectX;M68k;Xtensa
121
119LLVM_TARGETS_TO_BUILD ?= "AMDGPU;AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86;LoongArch;NVPTX;SPIRV" 122LLVM_TARGETS_TO_BUILD ?= "AMDGPU;AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86;LoongArch;NVPTX;SPIRV"
123LLVM_TARGETS_TO_BUILD:class-target ?= "${@get_clang_host_arch(bb, d)};AMDGPU;BPF;NVPTX;SPIRV"
120 124
121LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= "" 125LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= ""
122 126
@@ -189,7 +193,7 @@ EXTRA_OECMAKE:append:class-target = "\
189 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ 193 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \
190 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ 194 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \
191 -DCMAKE_STRIP=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-strip \ 195 -DCMAKE_STRIP=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-strip \
192 -DLLVM_TARGET_ARCH=${@get_clang_target_arch(bb, d)} \ 196 -DLLVM_TARGET_ARCH=${HOST_ARCH} \
193 -DLLVM_DEFAULT_TARGET_TRIPLE=${TARGET_SYS}${HF} \ 197 -DLLVM_DEFAULT_TARGET_TRIPLE=${TARGET_SYS}${HF} \
194 -DLLVM_HOST_TRIPLE=${TARGET_SYS}${HF} \ 198 -DLLVM_HOST_TRIPLE=${TARGET_SYS}${HF} \
195 -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \ 199 -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \