]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
clang: improve tablegen installation
authorRoss Burton <ross.burton@arm.com>
Wed, 24 Sep 2025 12:08:32 +0000 (13:08 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 25 Sep 2025 09:57:11 +0000 (10:57 +0100)
Backport a patch from upstream to install lldb-tblgen, and change the
llvm-tblgen-native recipe to use `cmake --install` instead of copying
the binaries.

This ensures that CMake does any post-install steps that are needed, and
we don't install binaries that have eg RPATHs pointing at the build tree.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/clang/clang/0001-Install-lldb-tblgen.patch [new file with mode: 0644]
meta/recipes-devtools/clang/common.inc
meta/recipes-devtools/clang/llvm-tblgen-native_git.bb

diff --git a/meta/recipes-devtools/clang/clang/0001-Install-lldb-tblgen.patch b/meta/recipes-devtools/clang/clang/0001-Install-lldb-tblgen.patch
new file mode 100644 (file)
index 0000000..c974167
--- /dev/null
@@ -0,0 +1,29 @@
+From 7de6d35aeea2d06b1597539c47f6af30d2798d73 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Fri, 19 Sep 2025 16:33:55 +0100
+Subject: [PATCH] Install lldb-tblgen
+
+In keeping with the llvm-tblgen and clang-tblgen binaries, allow
+lldb-tblgen to be installed by cmake so that cross builds are easier.
+
+Upstream-Status: Backport [https://github.com/llvm/llvm-project/commit/0ce6052a0c08035a07fcabb05271be7313308db3]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ lldb/utils/TableGen/CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lldb/utils/TableGen/CMakeLists.txt b/lldb/utils/TableGen/CMakeLists.txt
+index 0ac010bcda35..ce96dddd4420 100644
+--- a/lldb/utils/TableGen/CMakeLists.txt
++++ b/lldb/utils/TableGen/CMakeLists.txt
+@@ -8,6 +8,7 @@ if (NOT DEFINED LLDB_TABLEGEN_EXE)
+     set(LLVM_LINK_COMPONENTS Support)
+     add_tablegen(lldb-tblgen LLDB
++      DESTINATION "${CMAKE_INSTALL_BINDIR}"
+       LLDBOptionDefEmitter.cpp
+       LLDBPropertyDefEmitter.cpp
+       LLDBTableGen.cpp
+-- 
+2.43.0
+
index e01eb2d2879abb8fe7cb0a9a8e2a75b0b9a82fde..512bf1dd02848f45bbd0cbc25828782417897f71 100644 (file)
@@ -60,6 +60,7 @@ SRC_URI = "\
     file://0037-Revert-libc-Remap-headers-in-the-debug-info-when-bui.patch \
     file://0038-Prevent-revisiting-block-when-searching-for-noreturn.patch \
     file://0039-Only-build-c-index-test-when-clang-tests-are-include.patch \
+    file://0001-Install-lldb-tblgen.patch \
 "
 # Fallback to no-PIE if not set
 GCCPIE ??= ""
index be04c1aa4d161794dcd9acda769c9a7a5c9c111e..8023d745782d61db1e5ac677986174eb2f1ee7dc 100644 (file)
@@ -16,12 +16,10 @@ OECMAKE_SOURCEPATH = "${S}/llvm"
 
 EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS='llvm;clang;lldb'"
 
-BINARIES = "llvm-min-tblgen llvm-tblgen clang-tblgen lldb-tblgen"
-
-OECMAKE_TARGET_COMPILE = "${BINARIES}"
+OECMAKE_TARGET_COMPILE = "llvm-tblgen clang-tblgen lldb-tblgen"
 
 do_install() {
-    for f in ${BINARIES}; do
-        install -D ${B}/bin/$f ${D}${bindir}/$f
+    for TARGET in ${OECMAKE_TARGET_COMPILE}; do
+        DESTDIR=${D} cmake --install ${B} --component $TARGET
     done
 }