RE: [OE-core] [RFC 2/4] clang: Enable tests for llvm, clang, lld

Peter Kjellerstedt
2026-02-03T16:09:06Z

> -----Original Message-----
> From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> On Behalf Of Varatharajan, Deepesh via lists.openembedded.org
> Sent: den 3 februari 2026 15:03
> To: openembedded-core@lists.openembedded.org
> Cc: Randy.MacLeod@windriver.com; Sundeep.Kokkonda@windriver.com; Deepesh.Varatharajan@windriver.com
> Subject: [OE-core] [RFC 2/4] clang: Enable tests for llvm, clang, lld
>
> From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
>
> 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 <Deepesh.Varatharajan@windriver.com>
> ---
> 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