On 01/29/2013 10:40 AM, Martin Jansa wrote:
On Tue, Jan 29, 2013 at 10:29:07AM +0100, Mike Looijmans wrote:
I often have several hardware boards sharing 99% of periferals and
configuration. Usually they all have the exact same CPU, and the
difference is in the minor details like the screen resolution.
In "classic" OE I was used to sharing the work, by just changing the
MACHINE variable I could create an image for a slightly changed board in
a matter of minutes.
In OE-core this seems to be horribly broken, unless there's some other
procedure to follow.
If I change the MACHINE, it insists on rebuilding all kinds of packages
that don't need rebuilding at all. Instead of minutes, it takes an hour
to switch machines. And if I change back, the same thing happens all
over again.
In addition to needlessly rebuilding dozens of packages for the same
architecture, it often "starts" halfway through, so it tries to run the
"deploy" phase for a package while the workspace has already been
removed in the rm_work phase of the previous build. Which fails, so I
have to manually reset stamps for that package and let it start over
again (while usually the package shouldn't be rebuilt in the first place).
Is building for several machines no longer supported in OE-core? Or is
there some secret way of setting up directories and variables that will
make it work as it used to?
It's more strict and every machine now has own sysroot (so it's doing a
bit more after MACHINE change then it did with OE-Classic), but it still
works. I'm using it like this.
How are you using it? Because for me it doesn't work at all, it results
in build errors and needless rebuilds on every switch. I've tried in
three different environments, and it never works.
(Needless rebuild: Built package X for machine A. Switch to B, and it
will build X again, which isn't needed because they're for the same
architecture and the package isn't dependent on the machine. Switch back
to A, and it will AGAIN build package X, which is beyond just needless,
it's a bug in my opinion.)
Use openembedded-core/scripts/sstate-diff-machines.sh to compare your
machines and make sure that different checksums are only for
MACHINE_ARCH recipes.
How? The tool only explains its commandline, but doesn't explain what
it's supposed to do...
Mike.
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core