On 03-02-2026 21:38, Peter Kjellerstedt wrote:
CAUTION: This email comes from a non Wind River email account!
Do not click links or open attachments unless you recognize the sender and know
the content is safe.
-----Original Message-----
From: [email protected]
<[email protected]> On Behalf Of Varatharajan, Deepesh
via lists.openembedded.org
Sent: den 3 februari 2026 15:03
To: [email protected]
Cc: [email protected]; [email protected];
[email protected]
Subject: [OE-core] [RFC 2/4] clang: Enable tests for llvm, clang, lld
From: Deepesh Varatharajan <[email protected]>
Enable the required LLVM, Clang, and LLD test build flags for both native
and target builds, and install the LLVM target tools needed to run tests
via llvm-lit.
Signed-off-by: Deepesh Varatharajan <[email protected]>
---
meta/recipes-devtools/clang/clang_git.bb | 3 ++-
meta/recipes-devtools/clang/lld_git.bb | 2 +-
meta/recipes-devtools/clang/llvm_git.bb | 11 +++++++----
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/meta/recipes-devtools/clang/clang_git.bb
b/meta/recipes-devtools/clang/clang_git.bb
index e10c327a2a..a1ff25f863 100644
--- a/meta/recipes-devtools/clang/clang_git.bb
+++ b/meta/recipes-devtools/clang/clang_git.bb
@@ -68,7 +68,8 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
-DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
-DCLANG_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/clang-tblgen \
- -DLLVM_INCLUDE_TESTS=OFF \
+ -DCLANG_INCLUDE_TESTS=ON \
+ -DLLVM_INCLUDE_TESTS=ON \
-DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake'
\
-DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \
-DCMAKE_AR=${STAGING_BINDIR_NATIVE}/llvm-ar \
diff --git a/meta/recipes-devtools/clang/lld_git.bb
b/meta/recipes-devtools/clang/lld_git.bb
index ba36942790..1d3d80e117 100644
--- a/meta/recipes-devtools/clang/lld_git.bb
+++ b/meta/recipes-devtools/clang/lld_git.bb
@@ -16,7 +16,7 @@ OECMAKE_SOURCEPATH = "${S}/lld"
# Explicitly enable symlinks as the lld build doesn't call into the llvm setup
# and turn that on.
-EXTRA_OECMAKE += "-DLLVM_INCLUDE_TESTS=OFF -DLLVM_USE_SYMLINKS=ON \
+EXTRA_OECMAKE += "-DLLVM_INCLUDE_TESTS=ON -DLLVM_USE_SYMLINKS=ON \
-DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/clang/llvm_git.bb
b/meta/recipes-devtools/clang/llvm_git.bb
index 96ea383731..6fed382d69 100644
--- a/meta/recipes-devtools/clang/llvm_git.bb
+++ b/meta/recipes-devtools/clang/llvm_git.bb
@@ -44,10 +44,13 @@ EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=MinSizeRel \
-DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \
-DLLVM_VERSION_SUFFIX='${VER_SUFFIX}' \
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
- -DLLVM_INCLUDE_TESTS=OFF \
+ -DLLVM_INCLUDE_TESTS=ON \
+ -DLLVM_BUILD_TESTS=ON \
+ -DLLVM_INSTALL_GTEST=ON \
-DLLVM_INCLUDE_EXAMPLES=OFF \
- -DLLVM_TOOL_OBJ2YAML_BUILD=OFF \
- -DLLVM_TOOL_YAML2OBJ_BUILD=OFF \
+ -DLLVM_TOOL_OBJ2YAML_BUILD=ON \
+ -DLLVM_TOOL_YAML2OBJ_BUILD=ON \
+ -DLLVM_TOOL_LLVM_EXEGESIS_BUILD=ON \
-DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
-DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
-DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake'
\
@@ -69,7 +72,6 @@ PACKAGECONFIG ??= "eh rtti shared-libs
${@bb.utils.filter('DISTRO_FEATURES', 'lt
PACKAGECONFIG:remove:class-native = "lto thin-lto"
PACKAGECONFIG[eh] = "-DLLVM_ENABLE_EH=ON,-DLLVM_ENABLE_EH=OFF"
-PACKAGECONFIG[exegesis] =
"-DLLVM_TOOL_LLVM_EXEGESIS_BUILD=ON,-DLLVM_TOOL_LLVM_EXEGESIS_BUILD=OFF"
PACKAGECONFIG[libedit] =
"-DLLVM_ENABLE_LIBEDIT=ON,-DLLVM_ENABLE_LIBEDIT=OFF,libedit"
PACKAGECONFIG[rtti] = "-DLLVM_ENABLE_RTTI=ON,-DLLVM_ENABLE_RTTI=OFF"
PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON
-DLLVM_LINK_LLVM_DYLIB=ON,-DLLVM_BUILD_LLVM_DYLIB=OFF -DLLVM_LINK_LLVM_DYLIB=OFF"
@@ -124,6 +126,7 @@ SYSROOT_PREPROCESS_FUNCS:append:class-nativesdk = "
llvm_sysroot_preprocess"
llvm_sysroot_preprocess() {
install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
install -m 0755 ${S}/llvm/tools/llvm-config/llvm-config
${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ install -m 0755 ${B}/bin/* ${SYSROOT_DESTDIR}${bindir}/
}
FILES:${PN}-dev += "${libdir}/llvm-config"
--
2.49.0
Will this noticeably affect build times? Because we never run the
selftests in our environment so if it does, we would very much like
to be able to turn this off.
//Peter
Hi Peter,
We’ve measured this over multiple runs without using the poky sstate,
and the impact on overall build time is minimal.
Comparing before and after the change:
llvm increased by ~50 seconds
clang increased by ~15 seconds
lld increased by ~1 second
Regards,
Deepesh
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#230495):
https://lists.openembedded.org/g/openembedded-core/message/230495
Mute This Topic: https://lists.openembedded.org/mt/117615647/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-