diff options
| author | Khem Raj <raj.khem@gmail.com> | 2025-05-07 11:58:27 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-05-09 07:10:11 +0100 |
| commit | 777bcd1a080cc6cc4e9ea7f03020173d3049e446 (patch) | |
| tree | 0abddf787731c5ea40c5a5a851c8c59480d000c9 | |
| parent | b741bca92950894a363dd2eeb0a58b76bb8f2b4f (diff) | |
| download | poky-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>
| -rw-r--r-- | meta/recipes-devtools/clang/clang_git.bb | 14 |
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 | |||
| 119 | LLVM_TARGETS_TO_BUILD ?= "AMDGPU;AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86;LoongArch;NVPTX;SPIRV" | 122 | LLVM_TARGETS_TO_BUILD ?= "AMDGPU;AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86;LoongArch;NVPTX;SPIRV" |
| 123 | LLVM_TARGETS_TO_BUILD:class-target ?= "${@get_clang_host_arch(bb, d)};AMDGPU;BPF;NVPTX;SPIRV" | ||
| 120 | 124 | ||
| 121 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= "" | 125 | LLVM_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 \ |
