[OE-core] [PATCH 1/2] sstate: ensure an ordered mapping between SSTATETASKS and SSTATETASKNAMES

Tian, Kevin kevin.tian at intel.com
Mon Apr 11 00:40:47 UTC 2011


good work to track this tricky stuff down. :-)

> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org
> [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf Of
> Dexuan Cui
> Sent: Friday, April 08, 2011 6:00 PM
> To: openembedded-core at lists.openembedded.org
> Subject: [OE-core] [PATCH 1/2] sstate: ensure an ordered mapping between
> SSTATETASKS and SSTATETASKNAMES
> 
> From: Dexuan Cui <dexuan.cui at intel.com>
> 
> 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.
> 
> Signed-off-by: Dexuan Cui <dexuan.cui at intel.com>
> ---
>  meta/classes/sstate.bbclass |    6 ++++--
>  1 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
> index cc0b866..be650c4 100644
> --- a/meta/classes/sstate.bbclass
> +++ b/meta/classes/sstate.bbclass
> @@ -39,8 +39,10 @@ python () {
>          scan_cmd = "grep -Irl ${STAGING_DIR} ${SSTATE_BUILDDIR}"
>          bb.data.setVar('SSTATE_SCAN_CMD', scan_cmd, d)
> 
> +    unique_tasks = set((bb.data.getVar('SSTATETASKS', d, True) or "").split())
> +    d.setVar('SSTATETASKS', " ".join(unique_tasks))
>      namemap = []
> -    for task in set((bb.data.getVar('SSTATETASKS', d, True) or "").split()):
> +    for task in unique_tasks:
>          namemap.append(bb.data.getVarFlag(task, 'sstate-name', d))
>          funcs = bb.data.getVarFlag(task, 'prefuncs', d) or ""
>          funcs = "sstate_task_prefunc " + funcs
> @@ -200,7 +202,7 @@ def sstate_clean_cachefile(ss, d):
>      oe.path.remove(sstatepkgfile)
> 
>  def sstate_clean_cachefiles(d):
> -    for task in set((bb.data.getVar('SSTATETASKS', d, True) or "").split()):
> +    for task in (bb.data.getVar('SSTATETASKS', d, True) or "").split():
>          ss = sstate_state_fromvars(d, task[3:])
>          sstate_clean_cachefile(ss, d)
> 
> --
> 1.7.2
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list