Message ID | 20250924120834.2886320-6-ross.burton@arm.com |
---|---|
State | Accepted, archived |
Commit | 36b42975b975b4a5e3904e555e5ee00aba9c2f2b |
Headers | show |
Series | [v4,1/7] clang: improve opt-viewer PACKAGECONFIG | expand |
I am seeing that target clang is failing to build FAILED: [code=127] NATIVE/bin/clang-tidy-confusable-chars-gen /mnt/b/yoe/master/build/tmp/work/riscv64imafdc-yoe-linux/clang/21.1.1/build/NATIVE/bin/clang-tidy-confusable-chars-gen full compile log is here https://termbin.com/qct7 On Wed, Sep 24, 2025 at 5:09 AM Ross Burton via lists.openembedded.org <ross.burton=arm.com@lists.openembedded.org> wrote: > > 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. > > Signed-off-by: Ross Burton <ross.burton@arm.com> > --- > meta/recipes-devtools/clang/clang_git.bb | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb > index 998c1731f2f..9ccb81a5308 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 \ > -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \ > -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ > -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ > - -DLLVM_HEADERS_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-min-tblgen \ > + -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ > + -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ > -DLLVM_INCLUDE_TESTS=OFF \ > + -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ > " > > EXTRA_OECMAKE:append:class-nativesdk = "\ > - -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ > - -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ > - -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${STAGING_BINDIR_NATIVE}/clang-tidy-confusable-chars-gen \ > -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ > -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ > -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ > @@ -205,7 +204,6 @@ do_install:append:class-native () { > if ${@bb.utils.contains('PACKAGECONFIG', 'clangd', 'true', 'false', d)}; then > install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer > fi > - install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tidy-confusable-chars-gen ${D}${bindir}/clang-tidy-confusable-chars-gen > > for f in `find ${D}${bindir} -executable -type f -not -type l`; do > test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f > @@ -225,7 +223,6 @@ do_install:append:class-nativesdk () { > install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer > fi > install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tblgen ${D}${bindir}/clang-tblgen > - install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tidy-confusable-chars-gen ${D}${bindir}/clang-tidy-confusable-chars-gen > for f in `find ${D}${bindir} -executable -type f -not -type l`; do > test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f > done > -- > 2.43.0 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#223972): https://lists.openembedded.org/g/openembedded-core/message/223972 > Mute This Topic: https://lists.openembedded.org/mt/115410450/1997914 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
AB also showing same failure https://autobuilder.yoctoproject.org/valkyrie/#/builders/81/builds/953/steps/14/logs/stdio On Wed, Sep 24, 2025 at 9:21 PM Khem Raj <raj.khem@gmail.com> wrote: > > I am seeing that target clang is failing to build > > FAILED: [code=127] NATIVE/bin/clang-tidy-confusable-chars-gen > /mnt/b/yoe/master/build/tmp/work/riscv64imafdc-yoe-linux/clang/21.1.1/build/NATIVE/bin/clang-tidy-confusable-chars-gen > > full compile log is here > > https://termbin.com/qct7 > > On Wed, Sep 24, 2025 at 5:09 AM Ross Burton via lists.openembedded.org > <ross.burton=arm.com@lists.openembedded.org> wrote: > > > > 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. > > > > Signed-off-by: Ross Burton <ross.burton@arm.com> > > --- > > meta/recipes-devtools/clang/clang_git.bb | 9 +++------ > > 1 file changed, 3 insertions(+), 6 deletions(-) > > > > diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb > > index 998c1731f2f..9ccb81a5308 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 \ > > -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \ > > -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ > > -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ > > - -DLLVM_HEADERS_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-min-tblgen \ > > + -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ > > + -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ > > -DLLVM_INCLUDE_TESTS=OFF \ > > + -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ > > " > > > > EXTRA_OECMAKE:append:class-nativesdk = "\ > > - -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ > > - -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ > > - -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${STAGING_BINDIR_NATIVE}/clang-tidy-confusable-chars-gen \ > > -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ > > -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ > > -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ > > @@ -205,7 +204,6 @@ do_install:append:class-native () { > > if ${@bb.utils.contains('PACKAGECONFIG', 'clangd', 'true', 'false', d)}; then > > install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer > > fi > > - install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tidy-confusable-chars-gen ${D}${bindir}/clang-tidy-confusable-chars-gen > > > > for f in `find ${D}${bindir} -executable -type f -not -type l`; do > > test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f > > @@ -225,7 +223,6 @@ do_install:append:class-nativesdk () { > > install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer > > fi > > install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tblgen ${D}${bindir}/clang-tblgen > > - install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tidy-confusable-chars-gen ${D}${bindir}/clang-tidy-confusable-chars-gen > > for f in `find ${D}${bindir} -executable -type f -not -type l`; do > > test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f > > done > > -- > > 2.43.0 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > > Links: You receive all messages sent to this group. > > View/Reply Online (#223972): https://lists.openembedded.org/g/openembedded-core/message/223972 > > Mute This Topic: https://lists.openembedded.org/mt/115410450/1997914 > > Group Owner: openembedded-core+owner@lists.openembedded.org > > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com] > > -=-=-=-=-=-=-=-=-=-=-=- > >
Nevermind, I guess we need this series and https://lore.kernel.org/openembedded-core/20250924120745.2883969-1-ross.burton@arm.com/T/#t together for cmake fixes. Once I applied the second series things look better. On Wed, Sep 24, 2025 at 9:39 PM Khem Raj <raj.khem@gmail.com> wrote: > > AB also showing same failure > > https://autobuilder.yoctoproject.org/valkyrie/#/builders/81/builds/953/steps/14/logs/stdio > > On Wed, Sep 24, 2025 at 9:21 PM Khem Raj <raj.khem@gmail.com> wrote: > > > > I am seeing that target clang is failing to build > > > > FAILED: [code=127] NATIVE/bin/clang-tidy-confusable-chars-gen > > /mnt/b/yoe/master/build/tmp/work/riscv64imafdc-yoe-linux/clang/21.1.1/build/NATIVE/bin/clang-tidy-confusable-chars-gen > > > > full compile log is here > > > > https://termbin.com/qct7 > > > > On Wed, Sep 24, 2025 at 5:09 AM Ross Burton via lists.openembedded.org > > <ross.burton=arm.com@lists.openembedded.org> wrote: > > > > > > 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. > > > > > > Signed-off-by: Ross Burton <ross.burton@arm.com> > > > --- > > > meta/recipes-devtools/clang/clang_git.bb | 9 +++------ > > > 1 file changed, 3 insertions(+), 6 deletions(-) > > > > > > diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb > > > index 998c1731f2f..9ccb81a5308 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 \ > > > -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \ > > > -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ > > > -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ > > > - -DLLVM_HEADERS_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-min-tblgen \ > > > + -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ > > > + -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ > > > -DLLVM_INCLUDE_TESTS=OFF \ > > > + -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ > > > " > > > > > > EXTRA_OECMAKE:append:class-nativesdk = "\ > > > - -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ > > > - -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ > > > - -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${STAGING_BINDIR_NATIVE}/clang-tidy-confusable-chars-gen \ > > > -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ > > > -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ > > > -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ > > > @@ -205,7 +204,6 @@ do_install:append:class-native () { > > > if ${@bb.utils.contains('PACKAGECONFIG', 'clangd', 'true', 'false', d)}; then > > > install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer > > > fi > > > - install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tidy-confusable-chars-gen ${D}${bindir}/clang-tidy-confusable-chars-gen > > > > > > for f in `find ${D}${bindir} -executable -type f -not -type l`; do > > > test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f > > > @@ -225,7 +223,6 @@ do_install:append:class-nativesdk () { > > > install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer > > > fi > > > install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tblgen ${D}${bindir}/clang-tblgen > > > - install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tidy-confusable-chars-gen ${D}${bindir}/clang-tidy-confusable-chars-gen > > > for f in `find ${D}${bindir} -executable -type f -not -type l`; do > > > test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f > > > done > > > -- > > > 2.43.0 > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > > > Links: You receive all messages sent to this group. > > > View/Reply Online (#223972): https://lists.openembedded.org/g/openembedded-core/message/223972 > > > Mute This Topic: https://lists.openembedded.org/mt/115410450/1997914 > > > Group Owner: openembedded-core+owner@lists.openembedded.org > > > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com] > > > -=-=-=-=-=-=-=-=-=-=-=- > > >
diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb index 998c1731f2f..9ccb81a5308 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 \ -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ - -DLLVM_HEADERS_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-min-tblgen \ + -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ + -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ -DLLVM_INCLUDE_TESTS=OFF \ + -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ " EXTRA_OECMAKE:append:class-nativesdk = "\ - -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ - -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ - -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${STAGING_BINDIR_NATIVE}/clang-tidy-confusable-chars-gen \ -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ @@ -205,7 +204,6 @@ do_install:append:class-native () { if ${@bb.utils.contains('PACKAGECONFIG', 'clangd', 'true', 'false', d)}; then install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer fi - install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tidy-confusable-chars-gen ${D}${bindir}/clang-tidy-confusable-chars-gen for f in `find ${D}${bindir} -executable -type f -not -type l`; do test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f @@ -225,7 +223,6 @@ do_install:append:class-nativesdk () { install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer fi install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tblgen ${D}${bindir}/clang-tblgen - install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tidy-confusable-chars-gen ${D}${bindir}/clang-tidy-confusable-chars-gen for f in `find ${D}${bindir} -executable -type f -not -type l`; do test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f done
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. Signed-off-by: Ross Burton <ross.burton@arm.com> --- meta/recipes-devtools/clang/clang_git.bb | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)