| Message ID | 20251018070621.3456800-1-raj.khem@gmail.com |
|---|---|
| State | Accepted, archived |
| Commit | d259796efd6c405dd47fabccdbce761cb29fc354 |
| Headers | show |
| Series | classes/toolchain/clang: Add placeholder for dynamic linker in cross-canadian packages | expand |
On 18 Oct 2025, at 08:06, Khem Raj via lists.openembedded.org <raj.khem=gmail.com@lists.openembedded.org> wrote: > > clang-cross-canadian is just symlinking into nativesdk-clang unlike gcc which > has separate binaries and they have inbuilt dynamic linker specs. To help clang > built cross-canadian binaries add it via cmdline option here, cross-canadian > binaries are only usable on installed SDKs, and these paths get re-written with > correct SDK specific linker during SDK install relocation process. > > This helps clang built cross-canadian tools e.g. from binutils-cross-canadian > be relocated correctly on SDK install. > > Signed-off-by: Khem Raj <raj.khem@gmail.com> > --- > meta/classes/toolchain/clang.bbclass | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/meta/classes/toolchain/clang.bbclass b/meta/classes/toolchain/clang.bbclass > index b4a1c180f6a..9c1204171fe 100644 > --- a/meta/classes/toolchain/clang.bbclass > +++ b/meta/classes/toolchain/clang.bbclass > @@ -32,6 +32,7 @@ TUNE_CCARGS += "${@bb.utils.contains("DISTRO_FEATURES", "usrmerge", " --dyld-pre > > LDFLAGS:append:class-nativesdk:x86-64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2" > LDFLAGS:append:class-nativesdk:aarch64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-aarch64.so.1" > +LDFLAGS:append:class-cross-canadian = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2” You’re missing a second line and arch overrides for aarch64, yes? Ross
On Thu, Oct 23, 2025 at 5:53 AM Ross Burton <Ross.Burton@arm.com> wrote: > > On 18 Oct 2025, at 08:06, Khem Raj via lists.openembedded.org <raj.khem=gmail.com@lists.openembedded.org> wrote: > > > > clang-cross-canadian is just symlinking into nativesdk-clang unlike gcc which > > has separate binaries and they have inbuilt dynamic linker specs. To help clang > > built cross-canadian binaries add it via cmdline option here, cross-canadian > > binaries are only usable on installed SDKs, and these paths get re-written with > > correct SDK specific linker during SDK install relocation process. > > > > This helps clang built cross-canadian tools e.g. from binutils-cross-canadian > > be relocated correctly on SDK install. > > > > Signed-off-by: Khem Raj <raj.khem@gmail.com> > > --- > > meta/classes/toolchain/clang.bbclass | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/meta/classes/toolchain/clang.bbclass b/meta/classes/toolchain/clang.bbclass > > index b4a1c180f6a..9c1204171fe 100644 > > --- a/meta/classes/toolchain/clang.bbclass > > +++ b/meta/classes/toolchain/clang.bbclass > > @@ -32,6 +32,7 @@ TUNE_CCARGS += "${@bb.utils.contains("DISTRO_FEATURES", "usrmerge", " --dyld-pre > > > > LDFLAGS:append:class-nativesdk:x86-64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2" > > LDFLAGS:append:class-nativesdk:aarch64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-aarch64.so.1" > > +LDFLAGS:append:class-cross-canadian = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2” > > You’re missing a second line and arch overrides for aarch64, yes? well no, ldso gets re-written by SDK installer and it does the right thing when it replaces it on arm64 SDK host. > > Ross
diff --git a/meta/classes/toolchain/clang.bbclass b/meta/classes/toolchain/clang.bbclass index b4a1c180f6a..9c1204171fe 100644 --- a/meta/classes/toolchain/clang.bbclass +++ b/meta/classes/toolchain/clang.bbclass @@ -32,6 +32,7 @@ TUNE_CCARGS += "${@bb.utils.contains("DISTRO_FEATURES", "usrmerge", " --dyld-pre LDFLAGS:append:class-nativesdk:x86-64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2" LDFLAGS:append:class-nativesdk:aarch64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-aarch64.so.1" +LDFLAGS:append:class-cross-canadian = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2" # do_populate_sysroot needs STRIP, do_package_qa needs OBJDUMP POPULATESYSROOTDEPS:append:class-target = " llvm-native:do_populate_sysroot"
clang-cross-canadian is just symlinking into nativesdk-clang unlike gcc which has separate binaries and they have inbuilt dynamic linker specs. To help clang built cross-canadian binaries add it via cmdline option here, cross-canadian binaries are only usable on installed SDKs, and these paths get re-written with correct SDK specific linker during SDK install relocation process. This helps clang built cross-canadian tools e.g. from binutils-cross-canadian be relocated correctly on SDK install. Signed-off-by: Khem Raj <raj.khem@gmail.com> --- meta/classes/toolchain/clang.bbclass | 1 + 1 file changed, 1 insertion(+)