[OE-core] sstate.bbclass: Ensure machine specific stamps are only wiped for the current task

Martin Jansa martin.jansa at gmail.com
Thu Nov 3 16:33:28 UTC 2011


On Mon, Oct 10, 2011 at 03:17:51PM +0100, Richard Purdie wrote:
> On Mon, 2011-10-10 at 13:45 +0200, Martin Jansa wrote:
> > On Sun, Oct 09, 2011 at 08:11:45PM +0200, Koen Kooi wrote:
> > > 
> > > Op 9 okt. 2011, om 20:10 heeft Martin Jansa het volgende geschreven:
> > > 
> > > > On Sun, Oct 09, 2011 at 01:25:09PM +0200, Koen Kooi wrote:
> > > >> 
> > > >> Op 6 okt. 2011, om 16:19 heeft Richard Purdie het volgende geschreven:
> > > >> 
> > > >>> sstate was being a little too ethusiastic about removing stamp files and
> > > >>> was removing stamp files for other machines when it shouldn't have been.
> > > >>> 
> > > >>> This patch teaches sstate about machine specific stamp extensions and
> > > >>> allows it to only remove the current task's stampfiles.
> > > >> 
> > > >> Not sure if it's related to this problem or not but sstate is still not working as intented for me when switching machines, it keeps rebuilding the toolchain when switching machine. What I did this morning:
> > > >> 
> > > >> 1) wipe out tmp, sstate-cache, pseudodone
> > > >> 2) MACHINE=beagleboard bitbake u-boot
> > > >> 3) cp conf/machine/beagleboard.conf conf/machine/brokensstate.conf
> > > >> 4) MACHINE=brokensstate bitbake u-boot
> > > > 
> > > > Same here.. :/ (building 3 armv7 machines.. always "from scratch").
> > > 
> > > To eliminate varables: Angstrom/shr/aurora/micro/other/all of the above?
> > 
> > DISTRO=shr
> > 
> > MACHINE=nokia900 bitbake shr-image -> builds from scratch, finished ok
> > MACHINE=palmpre bitbake shr-image -> builds from scratch, finished ok
> > MACHINE=palmpre2 bitbake shr-image -> builds from scratch, finished ok
> > 
> > without wiping anything (same tmp, same sstate-cache, same pseudodone)
> > 
> > MACHINE=palmpre bitbake shr-image -> builds from scratch, again!, finished ok
> > MACHINE=palmpre2 bitbake shr-image -> builds from scratch, again!, finished ok
> > MACHINE=nokia900 bitbake shr-image -> builds from scratch, again!, finished ok
> > 
> > palmpre and palmpre2 are "the same"
> > $ cat meta-smartphone/meta-palm/conf/machine/palmpre.conf | grep -v ^#
> > require conf/machine/include/palmpre.inc
> > 
> > $ cat meta-smartphone/meta-palm/conf/machine/palmpre2.conf | grep -v ^#
> > require conf/machine/include/palmpre.inc
> > 
> > nokia900 is also armv7a-vfp-neon (that's why all packages except
> > MACHINE_ARCH were always reused without rebuilding in OE-classic).
> > 
> > I have tried to debug sigdata files to see why and also tried to add
> > MACHINEOVERRIDES[vardepsexclude] = "MACHINE"
> > as RP suggested, but sofar haven't found solution at least to reuse
> > already built sstate packages for armv7a-vfp-neon.
> 
> I've posted a patch which at least locally solves the issue with the "cp
> MACHINEA MACHINEB". If there are more issues I'd be interested, see my
> separate email with some debugging tips.

Hi,

to recap what we have talked about on ELCE;

Currently it doesn't seem to change sstate checksums after switching
MACHINE, but still it rebuilds everything at least once after switch.

Today I've tried to wipe tmp and rebuild from sstate-cache and I've
noticed interesting thing:

All recipes are starting with 
do_populate_lic_setscene 
not 
do_populate_sysroot_setscene
like ie koen's build does

NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: package quilt-native-0.48-r0: task do_populate_lic_setscene: Started
NOTE: package shr-image-2.0-r18: task do_populate_lic_setscene: Started
NOTE: package quilt-native-0.48-r0: task do_populate_lic_setscene: Succeeded
NOTE: package shr-image-2.0-r18: task do_populate_lic_setscene: Succeeded

Does do_populate_lic_setscene wipe all stamps after do_populate_lic so it 
causes the rebuild instead of population of sysroot from sstate?

IIRC I had similar issue when I was starting to use oe-core and it was 
in the end caused by inheriting package_ipk (once directly from distro config 
and once through sane-feed-ipk.inc) and it was fixed 6 months ago by:
http://git.shr-project.org/git/?p=meta-shr.git;a=commit;h=00623b3c6dd01c4a227008f7cfdb0801cb06f49a
And IIRC we've talked about some ways to make sstate less error-prone
for such things.

Now I have similar symptoms but only after switching MACHINE.

Any hint?

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20111103/972cd152/attachment-0002.sig>


More information about the Openembedded-core mailing list