summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@arm.com>2025-09-24 13:08:33 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-09-25 11:09:04 +0100
commit6863eadeaf7d17419fb915740e0c0f1dfeb4a34f (patch)
treebf7bc46bbc1c762fb9ac50d98fc33235e8d2b494
parentc22230e15f8bc551e3fc5972483595a1866d0c99 (diff)
downloadpoky-6863eadeaf7d17419fb915740e0c0f1dfeb4a34f.tar.gz
clang: tell cross-builds of clang how to build natively
If we pass CROSS_TOOLCHAIN_FLAGS_NATIVE to all the builds, instead of just nativesdk, then clang can correctly build its own native tools as needed. This means we can stop manually installing clang-tidy-confusable-chars-gen as clang-tidy will build it. We (currently) still build the tblgen binaries once as they're used in several recipes so there's likely value in building those once. Also consolidate the LLVM_TABLEGEN variables as they're not specific to a particular class. (From OE-Core rev: 36b42975b975b4a5e3904e555e5ee00aba9c2f2b) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/clang/clang_git.bb9
1 files changed, 3 insertions, 6 deletions
diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb
index 998c1731f2..9ccb81a530 100644
--- a/meta/recipes-devtools/clang/clang_git.bb
+++ b/meta/recipes-devtools/clang/clang_git.bb
@@ -120,14 +120,13 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
120 -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \ 120 -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \
121 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ 121 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \
122 -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ 122 -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
123 -DLLVM_HEADERS_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-min-tblgen \ 123 -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
124 -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
124 -DLLVM_INCLUDE_TESTS=OFF \ 125 -DLLVM_INCLUDE_TESTS=OFF \
126 -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \
125" 127"
126 128
127EXTRA_OECMAKE:append:class-nativesdk = "\ 129EXTRA_OECMAKE:append:class-nativesdk = "\
128 -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \
129 -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
130 -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${STAGING_BINDIR_NATIVE}/clang-tidy-confusable-chars-gen \
131 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ 130 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \
132 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ 131 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \
133 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ 132 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \
@@ -205,7 +204,6 @@ do_install:append:class-native () {
205 if ${@bb.utils.contains('PACKAGECONFIG', 'clangd', 'true', 'false', d)}; then 204 if ${@bb.utils.contains('PACKAGECONFIG', 'clangd', 'true', 'false', d)}; then
206 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer 205 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer
207 fi 206 fi
208 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tidy-confusable-chars-gen ${D}${bindir}/clang-tidy-confusable-chars-gen
209 207
210 for f in `find ${D}${bindir} -executable -type f -not -type l`; do 208 for f in `find ${D}${bindir} -executable -type f -not -type l`; do
211 test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f 209 test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f
@@ -225,7 +223,6 @@ do_install:append:class-nativesdk () {
225 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer 223 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer
226 fi 224 fi
227 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tblgen ${D}${bindir}/clang-tblgen 225 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tblgen ${D}${bindir}/clang-tblgen
228 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tidy-confusable-chars-gen ${D}${bindir}/clang-tidy-confusable-chars-gen
229 for f in `find ${D}${bindir} -executable -type f -not -type l`; do 226 for f in `find ${D}${bindir} -executable -type f -not -type l`; do
230 test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f 227 test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f
231 done 228 done