diff options
| author | Ross Burton <ross.burton@arm.com> | 2025-09-24 13:08:33 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-09-25 11:09:04 +0100 |
| commit | 6863eadeaf7d17419fb915740e0c0f1dfeb4a34f (patch) | |
| tree | bf7bc46bbc1c762fb9ac50d98fc33235e8d2b494 | |
| parent | c22230e15f8bc551e3fc5972483595a1866d0c99 (diff) | |
| download | poky-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.bb | 9 |
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 | ||
| 127 | EXTRA_OECMAKE:append:class-nativesdk = "\ | 129 | EXTRA_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 |
