[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