Patchwork [3/3] WIP: icecc.bbclass: Exclude few variables causing different signatures for native and allarch recipes

login
register
mail settings
Submitter Martin Jansa
Date Dec. 4, 2013, 10:10 p.m.
Message ID <1386195032-18264-3-git-send-email-Martin.Jansa@gmail.com>
Download mbox | patch
Permalink /patch/62859/
State New
Headers show

Comments

Martin Jansa - Dec. 4, 2013, 10:10 p.m.
* I'm not entirely sure it's best way to do it, but it's the easiest one
* we can clean TARGET_FPU in allarch.bbclass to resolve icc_version
* we can provide separate icc_get_tool function for native recipes

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/icecc.bbclass | 4 ++++
 1 file changed, 4 insertions(+)
Martin Jansa - Dec. 5, 2013, 9:21 p.m.
On Wed, Dec 04, 2013 at 11:10:32PM +0100, Martin Jansa wrote:
> * I'm not entirely sure it's best way to do it, but it's the easiest one
> * we can clean TARGET_FPU in allarch.bbclass to resolve icc_version
> * we can provide separate icc_get_tool function for native recipes

I've tried to implement cleaner solution, it's easy for TARGET_FPU, but
splitting native portion of icc_get_tool is causing me some issues

shouldn't global "d" be always defined?

this fails when called from shell task: expansion of get_tools 
threw ExpansionError: Failure expanding variable get_tools, expression was
ICECC_CC="${@icc_get_and_check_tool_native(bb, d, 'gcc')}"

which triggered exception NameError: global name 'd' is not defined
but the same line works fine in different shell function

It's probably something trivial, but I don't see it now, any hint would
be appreciated

whole change (currently not working)
http://bpaste.net/show/155875/

Interesting thing is that bitbake -e zlib-native doesn't fail with parse
error (like other parsing errors) but the error message shown above can
be found hidden in bitbake -e output.

> 
> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
>  meta/classes/icecc.bbclass | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass
> index 3c719ef..d1c056c 100644
> --- a/meta/classes/icecc.bbclass
> +++ b/meta/classes/icecc.bbclass
> @@ -142,6 +142,8 @@ def icc_is_native(bb, d):
>          bb.data.inherits_class("cross", d) or \
>          bb.data.inherits_class("native", d);
>  
> +# Don't pollute allarch signatures with TARGET_FPU
> +icc_version[vardepsexclude] += "TARGET_FPU"
>  def icc_version(bb, d):
>      if use_icc(bb, d) == "no":
>          return ""
> @@ -182,6 +184,8 @@ def icc_get_external_tool(bb, d, tool):
>      target_prefix = d.expand('${TARGET_PREFIX}')
>      return os.path.join(external_toolchain_bindir, '%s%s' % (target_prefix, tool))
>  
> +# Don't pollute native signatures with target TUNE_PKGARCH through STAGING_BINDIR_TOOLCHAIN
> +icc_get_tool[vardepsexclude] += "STAGING_BINDIR_TOOLCHAIN"
>  def icc_get_tool(bb, d, tool):
>      if icc_is_native(bb, d):
>          return bb.utils.which(os.getenv("PATH"), tool)
> -- 
> 1.8.4.3
>

Patch

diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass
index 3c719ef..d1c056c 100644
--- a/meta/classes/icecc.bbclass
+++ b/meta/classes/icecc.bbclass
@@ -142,6 +142,8 @@  def icc_is_native(bb, d):
         bb.data.inherits_class("cross", d) or \
         bb.data.inherits_class("native", d);
 
+# Don't pollute allarch signatures with TARGET_FPU
+icc_version[vardepsexclude] += "TARGET_FPU"
 def icc_version(bb, d):
     if use_icc(bb, d) == "no":
         return ""
@@ -182,6 +184,8 @@  def icc_get_external_tool(bb, d, tool):
     target_prefix = d.expand('${TARGET_PREFIX}')
     return os.path.join(external_toolchain_bindir, '%s%s' % (target_prefix, tool))
 
+# Don't pollute native signatures with target TUNE_PKGARCH through STAGING_BINDIR_TOOLCHAIN
+icc_get_tool[vardepsexclude] += "STAGING_BINDIR_TOOLCHAIN"
 def icc_get_tool(bb, d, tool):
     if icc_is_native(bb, d):
         return bb.utils.which(os.getenv("PATH"), tool)