From: Deepesh Varatharajan Date: Mon, 3 Aug 2026 04:17:40 +0000 (-0700) Subject: clang: Enable cmake flags for llvm, clang, lld tests X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c926c4f9f7ecf22698b7426609f8806feee175ca;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git clang: Enable cmake flags for llvm, clang, lld tests Enable the necessary CMake flags to build and run tests for LLVM, Clang and LLD. Install the LLVM target tools needed to run tests via llvm-lit inside QEMU only when CLANG_ENABLE_TESTSUITE = "1". Signed-off-by: Deepesh Varatharajan Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb index d55c59ffa0..a8c5e8cb2d 100644 --- a/meta/recipes-devtools/clang/clang_git.bb +++ b/meta/recipes-devtools/clang/clang_git.bb @@ -75,6 +75,14 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ -DCMAKE_STRIP=${STAGING_BINDIR_NATIVE}/llvm-strip \ " +CLANG_ENABLE_TESTSUITE ??= "0" +CLANG_TESTSUITE_FLAGS = "\ + -DCLANG_INCLUDE_TESTS=ON \ + -DLLVM_INCLUDE_TESTS=ON \ +" + +EXTRA_OECMAKE:append:class-target = " ${@bb.utils.contains('CLANG_ENABLE_TESTSUITE', '1', d.getVar('CLANG_TESTSUITE_FLAGS'), '', d)}" + DEPENDS = "llvm-tblgen-native llvm-native llvm binutils zlib zstd libffi libxml2 libxml2-native" DEPENDS:append:class-target = " ${@bb.utils.contains('TC_CXX_RUNTIME', 'llvm', 'compiler-rt libcxx', '', d)}" diff --git a/meta/recipes-devtools/clang/lld_git.bb b/meta/recipes-devtools/clang/lld_git.bb index ba36942790..8960cac2d3 100644 --- a/meta/recipes-devtools/clang/lld_git.bb +++ b/meta/recipes-devtools/clang/lld_git.bb @@ -19,4 +19,9 @@ OECMAKE_SOURCEPATH = "${S}/lld" EXTRA_OECMAKE += "-DLLVM_INCLUDE_TESTS=OFF -DLLVM_USE_SYMLINKS=ON \ -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen" +CLANG_ENABLE_TESTSUITE ??= "0" +LLD_TESTSUITE_FLAGS = "-DLLVM_INCLUDE_TESTS=ON" + +EXTRA_OECMAKE:append:class-target = " ${@bb.utils.contains('CLANG_ENABLE_TESTSUITE', '1', d.getVar('LLD_TESTSUITE_FLAGS'), '', d)}" + BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/clang/llvm_git.bb b/meta/recipes-devtools/clang/llvm_git.bb index bfdf4cfcd9..bec7e93eab 100644 --- a/meta/recipes-devtools/clang/llvm_git.bb +++ b/meta/recipes-devtools/clang/llvm_git.bb @@ -80,6 +80,18 @@ PACKAGECONFIG[opt-viewer] = "-DLLVM_TOOL_OPT_VIEWER_BUILD=ON,-DLLVM_TOOL_OPT_VIE PACKAGECONFIG[lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," PACKAGECONFIG[thin-lto] = "-DLLVM_ENABLE_LTO=Thin -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," +CLANG_ENABLE_TESTSUITE ??= "0" +LLVM_TESTSUITE_FLAGS = "\ + -DLLVM_BUILD_TESTS=ON \ + -DLLVM_INSTALL_GTEST=ON \ + -DLLVM_INCLUDE_TESTS=ON \ + -DLLVM_TOOL_LLVM_EXEGESIS_BUILD=ON \ + -DLLVM_TOOL_OBJ2YAML_BUILD=ON \ + -DLLVM_TOOL_YAML2OBJ_BUILD=ON \ + " + +EXTRA_OECMAKE:append:class-target = " ${@bb.utils.contains('CLANG_ENABLE_TESTSUITE', '1', d.getVar('LLVM_TESTSUITE_FLAGS'), '', d) } " + # LLVM debug symbols are very large (several gigabytes), reduce the debug level # so they're just hundreds of megabytes. DEBUG_LEVELFLAG = "-g1" @@ -118,7 +130,7 @@ do_install:append:class-native() { rm ${D}${bindir}/*-tblgen } -SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess" +SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess ${@bb.utils.contains('CLANG_ENABLE_TESTSUITE', '1', 'llvm_sysroot_preprocess_testsuite', '', d) }" SYSROOT_PREPROCESS_FUNCS:append:class-nativesdk = " llvm_sysroot_preprocess" llvm_sysroot_preprocess() { @@ -126,6 +138,10 @@ llvm_sysroot_preprocess() { install -m 0755 ${S}/llvm/tools/llvm-config/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ } +llvm_sysroot_preprocess_testsuite() { + install -m 0755 ${B}/bin/* ${SYSROOT_DESTDIR}${bindir}/ +} + FILES:${PN}-dev += "${libdir}/llvm-config" BBCLASSEXTEND = "native nativesdk"