[OE-core] How to find out why my do_compile depends on $MACHINE

Richard Purdie richard.purdie at linuxfoundation.org
Mon Oct 5 10:18:27 UTC 2015


On Mon, 2015-10-05 at 11:34 +0200, Mike Looijmans wrote:
> I've been puzzling with this for many hours now, but I can't seem to figure 
> this out.
> 
> I have a recipe that doesn't mention MACHINE anywhere, but still the 
> sstate-cache won't be re-used for other machines, because OE somehow insists 
> the package does depend on $MACHINE.
> 
> The workaround I could find is to put something like this in the recipe:
> 
> MACHINE[vardepvalue] = "any"
> 
> (Similar stupid hacks like "vardepsexclude" will probably work too, but I'm 
> not interested in forcing this particular recipe, but I'm trying to figure out 
> what makes bitbake think it matters)
> 
> Since it builds for an FPGA type, the package has 
> PACKAGE_ARCH="${FPGA_FAMILY}" set, and FGPA_FAMILY is set in local.conf.
> 
> 
> When switching machines, "bitbake -S printdiff fpga-image-dyplo-test" reports 
> that MACHINE changed and that is what caused sstate not beign reused. But the 
> recipe does not use anything related to $MACHINE at all.
> 
> Is there a way to make it tell me WHY it thinks that MACHINE is important to 
> the recipe?

Very briefly (sorry travelling), find the task that you want to know
more around and find the sigdata file in the stamps directory for it.
Run "bitbake-diffsigs <sigdatafile>" and it will show you how the
dependencies are calculated. You can compare two sigdata files using the
same command, "bitbake-diffsigs <sigdatafile1> <sigdatafile2>".

Cheers,

Richard




More information about the Openembedded-core mailing list