diff options
author | Peter Marko <peter.marko@siemens.com> | 2025-07-07 19:13:19 +0200 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2025-07-10 14:22:52 -0700 |
commit | aef850f7fa53121c74b244b7ae40d31fb9809ccf (patch) | |
tree | 2a1fc6bc20f4830a757cba38ff33084ffe2f1ba4 /recipes-devtools/clang/compiler-rt-sanitizers_git.bb | |
parent | eea5ec23155cfd47781599fdc9a92c21e4caffc8 (diff) | |
download | meta-clang-scarthgap.tar.gz |
compiler-rt-sanitizers: disable builtins libraryscarthgap
Currently compiler-rt-sanitizers fails to build as native recipe.
Configuration log shows:
-- Compiler-RT supported architectures: x86_64
-- Failed to find compiler-rt builtins library for x86_64-linux
The reasons is that calling
clang --rtlib=compiler-rt -print-libgcc-file-name
returns (tested in devtool and via additional cmake logs)
/usr/lib/clang/18.1.6/lib/linux/libclang_rt.builtins-x86_64.a
which is missing the recipe-sysroot-native prefix.
COMPILER_RT_USE_BUILTINS_LIBRARY=OFF is implemented in kirkstone and
also in master (in core). Note that when moving clang from meta-clang
to core, I didn't find explanation why this was changed back, but I
assume that it was because of issues like this.
When running
clang --rtlib=compiler-rt -print-libgcc-file-name
on master, it correctly returns the sysroot prefix.
However re-enabling builtins still results in a failure because on my
system it also detects i386 multilib which then fails.
Alternative which works (at least in Debian 11) is following:
EXTRA_OECMAKE:append:class-native = "\
-DCOMPILER_RT_LIBRARY_builtins_${BUILD_SYS}=${STAGING_LIBDIR_NATIVE}/clang/${PV}/lib/linux/libclang_rt.builtins-${BUILD_ARCH}.a \
-DCOMPILER_RT_LIBRARY_builtins_=${STAGING_LIBDIR_NATIVE}/clang/${PV}/lib/linux/libclang_rt.builtins-${BUILD_ARCH}.a \
"
However seeing failures on master, it's uncertain if it fixes all corner
cases.
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Diffstat (limited to 'recipes-devtools/clang/compiler-rt-sanitizers_git.bb')
-rw-r--r-- | recipes-devtools/clang/compiler-rt-sanitizers_git.bb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/recipes-devtools/clang/compiler-rt-sanitizers_git.bb b/recipes-devtools/clang/compiler-rt-sanitizers_git.bb index 8b937e0..b41cf2a 100644 --- a/recipes-devtools/clang/compiler-rt-sanitizers_git.bb +++ b/recipes-devtools/clang/compiler-rt-sanitizers_git.bb | |||
@@ -50,6 +50,10 @@ EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RelWithDebInfo \ | |||
50 | -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \ | 50 | -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \ |
51 | " | 51 | " |
52 | 52 | ||
53 | EXTRA_OECMAKE:append:class-native = "\ | ||
54 | -DCOMPILER_RT_USE_BUILTINS_LIBRARY=OFF \ | ||
55 | " | ||
56 | |||
53 | EXTRA_OECMAKE:append:class-nativesdk = "\ | 57 | EXTRA_OECMAKE:append:class-nativesdk = "\ |
54 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ | 58 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ |
55 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ | 59 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ |