summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorDexuan Cui <dexuan.cui@intel.com>2011-04-07 17:38:17 +0800
committerSaul Wold <sgw@linux.intel.com>2011-05-06 17:44:21 -0700
commit8c888bf67a5c86e1f7f587389ced4075aaad0eb1 (patch)
treea3d265652d1d057d4254129480c456972c5bfb32 /meta/classes
parent6f904b3550f6bf2042794ef1351c889380b6ea93 (diff)
downloadpoky-8c888bf67a5c86e1f7f587389ced4075aaad0eb1.tar.gz
sstate: ensure an ordered mapping between SSTATETASKS and SSTATETASKNAMES
Fix [YOCTO #964] A recent commit 25a6e5f9(sstate: use only unique set of SSTATETASK) breaks the ordered mapping between SSTATETASKS and SSTATETASKNAMES. As a result, in sstate_cleanall, the line taskname = tasks[namemap.index(name)] gets an incorrect result, and "bitbake -c cleanall" doesn't really remove the files populalted by do_populate_sysroot. (From OE-Core rev: 2f6505f0e795b6c8cad641a6918739c3faac1f99) Signed-off-by: Dexuan Cui <dexuan.cui@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/sstate.bbclass6
1 files changed, 4 insertions, 2 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 00a709ba44..1dfb43bdff 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -39,8 +39,10 @@ python () {
39 scan_cmd = "grep -Irl ${STAGING_DIR} ${SSTATE_BUILDDIR}" 39 scan_cmd = "grep -Irl ${STAGING_DIR} ${SSTATE_BUILDDIR}"
40 bb.data.setVar('SSTATE_SCAN_CMD', scan_cmd, d) 40 bb.data.setVar('SSTATE_SCAN_CMD', scan_cmd, d)
41 41
42 unique_tasks = set((bb.data.getVar('SSTATETASKS', d, True) or "").split())
43 d.setVar('SSTATETASKS', " ".join(unique_tasks))
42 namemap = [] 44 namemap = []
43 for task in set((bb.data.getVar('SSTATETASKS', d, True) or "").split()): 45 for task in unique_tasks:
44 namemap.append(bb.data.getVarFlag(task, 'sstate-name', d)) 46 namemap.append(bb.data.getVarFlag(task, 'sstate-name', d))
45 funcs = bb.data.getVarFlag(task, 'prefuncs', d) or "" 47 funcs = bb.data.getVarFlag(task, 'prefuncs', d) or ""
46 funcs = "sstate_task_prefunc " + funcs 48 funcs = "sstate_task_prefunc " + funcs
@@ -195,7 +197,7 @@ def sstate_clean_cachefile(ss, d):
195 oe.path.remove(sstatepkgfile) 197 oe.path.remove(sstatepkgfile)
196 198
197def sstate_clean_cachefiles(d): 199def sstate_clean_cachefiles(d):
198 for task in set((bb.data.getVar('SSTATETASKS', d, True) or "").split()): 200 for task in (bb.data.getVar('SSTATETASKS', d, True) or "").split():
199 ss = sstate_state_fromvars(d, task[3:]) 201 ss = sstate_state_fromvars(d, task[3:])
200 sstate_clean_cachefile(ss, d) 202 sstate_clean_cachefile(ss, d)
201 203