On Mon, 2026-09-07 at 22:56 +0100, Richard Purdie via lists.openembedded.org wrote: > On Fri, 2026-08-07 at 02:31 -0700, Sadineni, Harish via > lists.openembedded.org wrote: > > From: Harish Sadineni <[email protected]> > > > > YOCTO [#15061] > > > > Export `OECORE_TARGET_SYS` in the generated SDK and tree environment > > setup scripts, and source any `*.sh` files from > > `environment-setup.d/${TARGET_SYS}` in addition to the existing > > `environment-setup.d` directory. > > > > This complements the rust-cross-canadian changes, where Rust > > environment setup scripts are installed under a target-specific > > directory. By sourcing only the scripts that match the active target, > > the SDK avoids loading environment settings for other target variants, > > such as mixing 32-bit and 64-bit configurations in multilib SDKs. > > > > Signed-off-by: Harish Sadineni <[email protected]> > > --- > > meta/classes-recipe/toolchain-scripts.bbclass | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/meta/classes-recipe/toolchain-scripts.bbclass > > b/meta/classes-recipe/toolchain-scripts.bbclass > > index d94dcdee39..f0f599959d 100644 > > --- a/meta/classes-recipe/toolchain-scripts.bbclass > > +++ b/meta/classes-recipe/toolchain-scripts.bbclass > > @@ -76,6 +76,7 @@ toolchain_create_sdk_env_script () { > > echo 'export > > OECORE_MESON_HOST_CPU_FAMILY="${@meson_cpu_family('TARGET_ARCH', d)}"' > > >>$script > > echo 'export OECORE_MESON_HOST_CPU="${TARGET_ARCH}"' >>$script > > echo 'export OECORE_MESON_HOST_ENDIAN="${@meson_endian('TARGET', d)}"' > > >>$script > > + echo 'export OECORE_TARGET_SYS="${TARGET_SYS}"' >> $script > > > > echo 'unset command_not_found_handle' >> $script > > > > @@ -110,6 +111,7 @@ toolchain_create_tree_env_script () { > > echo 'export > > OECORE_MESON_HOST_CPU_FAMILY="${@meson_cpu_family('TARGET_ARCH', d)}"' > > >>$script > > echo 'export OECORE_MESON_HOST_CPU="${TARGET_ARCH}"' >>$script > > echo 'export OECORE_MESON_HOST_ENDIAN="${@meson_endian('TARGET', d)}"' > > >>$script > > + echo 'export OECORE_TARGET_SYS="${TARGET_SYS}"' >> $script > > > > toolchain_shared_env_script > > > > @@ -172,6 +174,12 @@ if [ -d "\$OECORE_NATIVE_SYSROOT/environment-setup.d" > > ]; then > > . \$envfile > > done > > fi > > +if [ -d "\$OECORE_NATIVE_SYSROOT/environment-setup.d/\$OECORE_TARGET_SYS" > > ]; then > > + for envfile in > > \$OECORE_NATIVE_SYSROOT/environment-setup.d/\$OECORE_TARGET_SYS/*.sh; do > > + . \$envfile > > + done > > +fi > > + > > EOF > > } > > Thanks to your other emails, I think I finally understand what is going > on here. Sorry for being a bit slow in understanding the issues > involved. I think what has been confusing me is that we have this code > which was meant to handle the target specific scripts: > > https://git.openembedded.org/openembedded-core/commit/?id=2d9466734f0c0c90724820bc36992b2800ffa4d0 > > which I appear to have added in 2014. I can't find any record of > anything actually successfully adding a target environment.d file using > the above layout, everything is nativesdk based as far as I can see. > I'm not even sure it is possible to add such a thing easily. > > So your approach is probably the right one but at the same time, we > should probably remove this other confusing one, assuming we can find > nothing installing such scripts. That should reduce the confusion and > code complexity a little. > > This does bring one further detail we need to get right, which is the > name of the directory. > > The recipe is named: PN = "rust-cross-canadian-${TRANSLATED_TARGET_ARCH}" > > i.e. it regenerates if TARGET_ARCH changes. > > You're placing the files in TARGET_SYS, which is not equal to > TARGET_ARCH. Which one is correct? If we build a target which combines > glibc and musl, would we need a different rust-cross-canadian for each > libc? > > I suspect PN is wrong and it should also use TARGET_SYS? > > The patches in this series also need to be the other way around - add > the search path in first, then use it in the next patch.
I meant to also mention, if you add TARGET_SYS/TARGET_ARCH to the search path, you can remove it from the script filename. Cheers, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#245309): https://lists.openembedded.org/g/openembedded-core/message/245309 Mute This Topic: https://lists.openembedded.org/mt/120640030/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
