sstate: Use datastore copies due to data changes persisting

The way the "all arch" PKGSPEC is enabled, it causes corruption
of the datastore of sstate operations against other tasks.

Data store copies are cheap and allow us to use that trick, resetting
to a clean copy of the data afterwards.

(From OE-Core rev: afaf16100efa79a275a2f4b9f2caa80decfdeb81)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2013-12-21 08:57:16 +00:00
parent 6aa4de3b7c
commit 325fb2bd24
1 changed files with 6 additions and 4 deletions

View File

@ -300,8 +300,9 @@ def sstate_clean_cachefile(ss, d):
def sstate_clean_cachefiles(d):
for task in (d.getVar('SSTATETASKS', True) or "").split():
ss = sstate_state_fromvars(d, task)
sstate_clean_cachefile(ss, d)
ld = d.createCopy()
ss = sstate_state_fromvars(ld, task)
sstate_clean_cachefile(ss, ld)
def sstate_clean_manifest(manifest, d):
import oe.path
@ -370,8 +371,9 @@ python sstate_cleanall() {
tasks = d.getVar('SSTATETASKS', True).split()
for name in tasks:
shared_state = sstate_state_fromvars(d, name)
sstate_clean(shared_state, d)
ld = d.createCopy()
shared_state = sstate_state_fromvars(ld, name)
sstate_clean(shared_state, ld)
}
def sstate_hardcode_path(d):