summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-12-21 08:57:16 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-12-21 09:00:16 +0000
commitafaf16100efa79a275a2f4b9f2caa80decfdeb81 (patch)
treed280fc7dd76cfa5e1e3e5b244fd0bb94d45a57fe
parent33874f9af895757c4b0fd2f4d350ed308edac03c (diff)
downloadopenembedded-core-afaf16100efa79a275a2f4b9f2caa80decfdeb81.tar.gz
openembedded-core-afaf16100efa79a275a2f4b9f2caa80decfdeb81.tar.bz2
openembedded-core-afaf16100efa79a275a2f4b9f2caa80decfdeb81.zip
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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/sstate.bbclass10
1 files changed, 6 insertions, 4 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 377af202a4..5a22ff8382 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -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):