Extensible SDK - runtime packages installation


d0ku
 

Hi,

I've been playing with extensible SDK lately and got to a point, where I want to create a minimal SDK installer and install all the required packages in runtime via `devtool sdk-install`, so that every developer can get only the stuff that's actually needed.

For the target part it works as expected, installing the content to ${OECORE_TARGET_SYSROOT}, however for the host part the content gets installed to ${OECORE_NATIVE_SYSROOT}, but it's not visible in the PATH in some cases. E.g. for perl-native the binaries are installed to `<native sysroot>/bin/perl-native` and are not visible, unless I manually extend the PATH with this directory, then it works fine.

So my questions are:
* Is the runtime installation of packages meant to run on host actually supported? It surely works for e.g. compiler, so I assume it should be also fine for other packages?
* Should I install `nativesdk-` or `-native` packages, if I want to use them this way? Or can I actually do both? In the eSDK talk by Paul Eggerton I saw that `nativesdk-cmake` was added, but the `nativesdk-` doesn't really seem to fit `mini Yocto environment` that eSDK basically is.
* Am I possibly missing some configuration steps? In Yocto environment the PATH gets expanded with `bin/perl-native` automatically, but I wasn't able to pinpoint what file/task actually does it.

Best Regards and thanks in advance,
Jakub


d0ku
 

Ok, I was able to find the answer to the third point:

 Am I possibly missing some configuration steps? In Yocto environment the PATH gets expanded with `bin/perl-native` automatically, but I wasn't able to pinpoint what file/task actually does it.

The bolded sentence is not actually true. Adding perl-native to the DEPENDS of a recipe, does not cause it to be automatically picked up during the build. For this to happen the perlnative bbclass has to be inherited. Same design is in place for at least python, probably more packages.

This brings me to the followup question:
How can I mimic the perlnative or python3native behaviour on the eSDK level? Is this only possible via the devtool and recipes, and so can't be done "outside" of the Yocto environment, e.g. using ${CC} and ${CXX} variables?

Regards,
Jakub