diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-12-21 08:57:16 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-12-21 09:00:52 +0000 |
commit | 325fb2bd247d5bbb502678281efaf62a4082fd44 (patch) | |
tree | c3efb9343615ab604f65f9bd9173b4173afa53ad /meta/classes | |
parent | 6aa4de3b7c756f0d9635a98b89987c73fcce051e (diff) | |
download | poky-325fb2bd247d5bbb502678281efaf62a4082fd44.tar.gz |
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>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/sstate.bbclass | 10 |
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): | |||
300 | 300 | ||
301 | def sstate_clean_cachefiles(d): | 301 | def sstate_clean_cachefiles(d): |
302 | for task in (d.getVar('SSTATETASKS', True) or "").split(): | 302 | for task in (d.getVar('SSTATETASKS', True) or "").split(): |
303 | ss = sstate_state_fromvars(d, task) | 303 | ld = d.createCopy() |
304 | sstate_clean_cachefile(ss, d) | 304 | ss = sstate_state_fromvars(ld, task) |
305 | sstate_clean_cachefile(ss, ld) | ||
305 | 306 | ||
306 | def sstate_clean_manifest(manifest, d): | 307 | def sstate_clean_manifest(manifest, d): |
307 | import oe.path | 308 | import oe.path |
@@ -370,8 +371,9 @@ python sstate_cleanall() { | |||
370 | 371 | ||
371 | tasks = d.getVar('SSTATETASKS', True).split() | 372 | tasks = d.getVar('SSTATETASKS', True).split() |
372 | for name in tasks: | 373 | for name in tasks: |
373 | shared_state = sstate_state_fromvars(d, name) | 374 | ld = d.createCopy() |
374 | sstate_clean(shared_state, d) | 375 | shared_state = sstate_state_fromvars(ld, name) |
376 | sstate_clean(shared_state, ld) | ||
375 | } | 377 | } |
376 | 378 | ||
377 | def sstate_hardcode_path(d): | 379 | def sstate_hardcode_path(d): |