diff mbox series

clang: Fix nativesdk build after recipe splits

Message ID 20250918030540.2172994-1-raj.khem@gmail.com
State Accepted, archived
Commit d5fa7bc2dfa7f618a742c76d20fba4437f2cdecf
Headers show
Series clang: Fix nativesdk build after recipe splits | expand

Commit Message

Khem Raj Sept. 18, 2025, 3:05 a.m. UTC
Splitting llvm, tblgen into their own recipes means we
have to ensure nativesdk clang build can find these tools
in native sysroot, which is would previously build and use
on its own.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Ross Burton <ross.burton@arm.com>
---
 meta/recipes-devtools/clang/clang_git.bb | 2 ++
 1 file changed, 2 insertions(+)

Comments

Joao Marcos Costa Sept. 18, 2025, 8:31 a.m. UTC | #1
Hello, Khem

On 9/18/25 05:05, Khem Raj via lists.openembedded.org wrote:
> Splitting llvm, tblgen into their own recipes means we
> have to ensure nativesdk clang build can find these tools
> in native sysroot, which is would previously build and use
> on its own.
> 
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> Cc: Ross Burton <ross.burton@arm.com>
> ---
>   meta/recipes-devtools/clang/clang_git.bb | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb
> index 9e977379325..bcc799f286b 100644
> --- a/meta/recipes-devtools/clang/clang_git.bb
> +++ b/meta/recipes-devtools/clang/clang_git.bb
> @@ -78,6 +78,8 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
>   
>   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 \
> 
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#223625): https://lists.openembedded.org/g/openembedded-core/message/223625
> Mute This Topic: https://lists.openembedded.org/mt/115304299/8026893
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [joaomarcos.costa@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
> 


I spotted this error in the autobuilder:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/61/builds/2266/steps/12/logs/stdio

Could you please take a look?
Thanks!
Khem Raj Sept. 18, 2025, 3:42 p.m. UTC | #2
On Thu, Sep 18, 2025 at 1:31 AM Joao Marcos Costa <
joaomarcos.costa@bootlin.com> wrote:

> Hello, Khem
>
> On 9/18/25 05:05, Khem Raj via lists.openembedded.org wrote:
> > Splitting llvm, tblgen into their own recipes means we
> > have to ensure nativesdk clang build can find these tools
> > in native sysroot, which is would previously build and use
> > on its own.
> >
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > Cc: Ross Burton <ross.burton@arm.com>
> > ---
> >   meta/recipes-devtools/clang/clang_git.bb | 2 ++
> >   1 file changed, 2 insertions(+)
> >
> > diff --git a/meta/recipes-devtools/clang/clang_git.bb
> b/meta/recipes-devtools/clang/clang_git.bb
> > index 9e977379325..bcc799f286b 100644
> > --- a/meta/recipes-devtools/clang/clang_git.bb
> > +++ b/meta/recipes-devtools/clang/clang_git.bb
> > @@ -78,6 +78,8 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
> >
> >   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 \
> >
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#223625):
> https://lists.openembedded.org/g/openembedded-core/message/223625
> > Mute This Topic: https://lists.openembedded.org/mt/115304299/8026893
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> joaomarcos.costa@bootlin.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
>
> I spotted this error in the autobuilder:
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/61/builds/2266/steps/12/logs/stdio
>
> Could you please take a look?
> Thanks!
>

Logs are showing clang-native failure while the change in this patch is
limited to nativesdk clang. So it is unrelated to this patch

However change seems to be related to llvm recipe separation series since
clang is building this tool during its build and trying to use it from its
build area but it’s perhaps not finding libllvm from native sysroot

>
> --
> Best regards,
> João Marcos Costa
>
Khem Raj Sept. 18, 2025, 11:23 p.m. UTC | #3
On Thu, Sep 18, 2025 at 8:42 AM Khem Raj <raj.khem@gmail.com> wrote:
>
>
>
> On Thu, Sep 18, 2025 at 1:31 AM Joao Marcos Costa <joaomarcos.costa@bootlin.com> wrote:
>>
>> Hello, Khem
>>
>> On 9/18/25 05:05, Khem Raj via lists.openembedded.org wrote:
>> > Splitting llvm, tblgen into their own recipes means we
>> > have to ensure nativesdk clang build can find these tools
>> > in native sysroot, which is would previously build and use
>> > on its own.
>> >
>> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> > Cc: Ross Burton <ross.burton@arm.com>
>> > ---
>> >   meta/recipes-devtools/clang/clang_git.bb | 2 ++
>> >   1 file changed, 2 insertions(+)
>> >
>> > diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb
>> > index 9e977379325..bcc799f286b 100644
>> > --- a/meta/recipes-devtools/clang/clang_git.bb
>> > +++ b/meta/recipes-devtools/clang/clang_git.bb
>> > @@ -78,6 +78,8 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
>> >
>> >   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 \
>> >
>> >
>> >
>> > -=-=-=-=-=-=-=-=-=-=-=-
>> > Links: You receive all messages sent to this group.
>> > View/Reply Online (#223625): https://lists.openembedded.org/g/openembedded-core/message/223625
>> > Mute This Topic: https://lists.openembedded.org/mt/115304299/8026893
>> > Group Owner: openembedded-core+owner@lists.openembedded.org
>> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [joaomarcos.costa@bootlin.com]
>> > -=-=-=-=-=-=-=-=-=-=-=-
>> >
>>
>>
>> I spotted this error in the autobuilder:
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/61/builds/2266/steps/12/logs/stdio
>>
>> Could you please take a look?
>> Thanks!
>
>
> Logs are showing clang-native failure while the change in this patch is limited to nativesdk clang. So it is unrelated to this patch
>
> However change seems to be related to llvm recipe separation series since clang is building this tool during its build and trying to use it from its build area but it’s perhaps not finding libllvm from native sysroot

I poked at the worker on AB where it is failing, I think there is a
cmake patch which is problematic.

https://patchwork.yoctoproject.org/project/oe-core/patch/20250915145134.192581-1-ross.burton@arm.com/

clang builds some tools during build and links them to in-tree libLLVM
if it is built in monolithic builds ( which we do ) and this option
omits build time rpaths which causes this problem.

>>



>>
>> --
>> Best regards,
>> João Marcos Costa
diff mbox series

Patch

diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb
index 9e977379325..bcc799f286b 100644
--- a/meta/recipes-devtools/clang/clang_git.bb
+++ b/meta/recipes-devtools/clang/clang_git.bb
@@ -78,6 +78,8 @@  EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
 
 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 \