[OE-core] Machine specific sysroot issue

Phil Blundell philb at gnu.org
Mon Aug 15 15:03:44 UTC 2011


On Sun, 2011-08-14 at 20:50 +0100, Paul Eggleton wrote:
> libopie2, a non-machine specific package, among other things installs a file 
> called include.pro into ${OPIEDIR}, which is configured to be 
> ${STAGING_DIR_HOST}. In OE-classic ${STAGING_DIR_HOST} is not machine-specific, 
> so if you build libopie2 for machine A then build some other package that 
> needs include.pro for machine B, then everything is fine. In the OE-core case 
> with machine-specific sysroots it's looking for the file in the sysroot for the 
> current machine, which if you've been building for several different machines 
> may not be where it has actually been installed.

I can't immediately think why this should be behaving differently to any
other library (eglibc for example).  It's quite normal for those
packages to be architecture-specific and not machine-specific.

What I think is meant to happen when you change MACHINE is that
populate_sysroot will rerun (because ${MACHINE} is factored into the
stamp for that task) but it will use all the previously cached build
artifacts from sstate and hence you won't end up having to rebuild
everything.  It sounds as if that isn't happening in this case for some
reason, though I can't immediately think what libopie2 might be doing to
defeat it.

Is it just include.pro that goes wrong, or does the whole of libopie2 go
missing from the sysroot when you change MACHINE?

p.






More information about the Openembedded-core mailing list