* [PATCHv3 0/3] fix icecc support
@ 2016-03-24 1:39 Alex Franco
2016-03-24 1:39 ` [PATCHv3 1/3] icecc.bbclass: add icc_is_allarch inherit check Alex Franco
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Alex Franco @ 2016-03-24 1:39 UTC (permalink / raw)
To: openembedded-core; +Cc: joshua.g.lock, aschultz, benjamin.esquivel
The commits related to this fix are provided in order of
importance.
1/3 - the actual fix, it adds a check for the
inheritance of allarch in icecc.bbclass
2/3 - optional, makes it so that PACKAGE_ARCH is
expanded ib icc_is_allarch, as it may contain
unexpanded variables
3/3 - optional, replace icc with icecc to avoid
confusing the Icecream compiler (icecc) with the
Intel C compiler (icc)
Changes since v2: use of getVar(VAR, True) for expansion
Changes since v1: inheritance check instead of disabling
note: an additional related documentation patch is
being sent to the documentation mailing list
Alex Franco (4):
icecc.bbclass: add icc_is_allarch inherit check
icecc.bbclass: expand package arch
icecc.bbclass: replace icc with icecc
documentation/ref-manual/ref-classes.xml | 2 +-
meta/classes/icecc.bbclass | 61 +++++++++++++++++---------------
2 files changed, 33 insertions(+), 30 deletions(-)
--
2.7.3
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCHv3 1/3] icecc.bbclass: add icc_is_allarch inherit check
2016-03-24 1:39 [PATCHv3 0/3] fix icecc support Alex Franco
@ 2016-03-24 1:39 ` Alex Franco
2016-03-24 1:39 ` [PATCHv3 2/3] icecc.bbclass: expand package arch Alex Franco
2016-03-24 1:39 ` [PATCHv3 3/3] icecc.bbclass: replace icc with icecc Alex Franco
2 siblings, 0 replies; 4+ messages in thread
From: Alex Franco @ 2016-03-24 1:39 UTC (permalink / raw)
To: openembedded-core; +Cc: joshua.g.lock, aschultz, benjamin.esquivel
Additional check for inheritance of allarch.bbclass, for when
checking that PACKAGE_ARCH == "all" is not enough to be sure
a recipe is "allarch"; e.g. nativesdk-buildtools type recipes
[YOCTO #8934]
Signed-off-by: Alex Franco <alejandro.franco@linux.intel.com>
---
meta/classes/icecc.bbclass | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass
index 61b8bb1..75d0e5d 100644
--- a/meta/classes/icecc.bbclass
+++ b/meta/classes/icecc.bbclass
@@ -138,7 +138,7 @@ def use_icc(bb,d):
return "yes"
def icc_is_allarch(bb, d):
- return d.getVar("PACKAGE_ARCH", False) == "all"
+ return d.getVar("PACKAGE_ARCH", False) == "all" or bb.data.inherits_class('allarch', d)
def icc_is_kernel(bb, d):
return \
--
2.7.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCHv3 2/3] icecc.bbclass: expand package arch
2016-03-24 1:39 [PATCHv3 0/3] fix icecc support Alex Franco
2016-03-24 1:39 ` [PATCHv3 1/3] icecc.bbclass: add icc_is_allarch inherit check Alex Franco
@ 2016-03-24 1:39 ` Alex Franco
2016-03-24 1:39 ` [PATCHv3 3/3] icecc.bbclass: replace icc with icecc Alex Franco
2 siblings, 0 replies; 4+ messages in thread
From: Alex Franco @ 2016-03-24 1:39 UTC (permalink / raw)
To: openembedded-core; +Cc: joshua.g.lock, aschultz, benjamin.esquivel
Expanding PACKAGE_ARCH might be necessary as it is being
checked against to determine if this is allarch
[YOCTO #8934]
Signed-off-by: Alex Franco <alejandro.franco@linux.intel.com>
---
meta/classes/icecc.bbclass | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass
index 75d0e5d..b4f1be5 100644
--- a/meta/classes/icecc.bbclass
+++ b/meta/classes/icecc.bbclass
@@ -138,7 +138,7 @@ def use_icc(bb,d):
return "yes"
def icc_is_allarch(bb, d):
- return d.getVar("PACKAGE_ARCH", False) == "all" or bb.data.inherits_class('allarch', d)
+ return d.getVar("PACKAGE_ARCH", True) == "all" or bb.data.inherits_class('allarch', d)
def icc_is_kernel(bb, d):
return \
--
2.7.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCHv3 3/3] icecc.bbclass: replace icc with icecc
2016-03-24 1:39 [PATCHv3 0/3] fix icecc support Alex Franco
2016-03-24 1:39 ` [PATCHv3 1/3] icecc.bbclass: add icc_is_allarch inherit check Alex Franco
2016-03-24 1:39 ` [PATCHv3 2/3] icecc.bbclass: expand package arch Alex Franco
@ 2016-03-24 1:39 ` Alex Franco
2 siblings, 0 replies; 4+ messages in thread
From: Alex Franco @ 2016-03-24 1:39 UTC (permalink / raw)
To: openembedded-core; +Cc: joshua.g.lock, aschultz, benjamin.esquivel
Make this class more clear and consistent, and avoid
confusion with the Intel C compiler (icc); the changes
affect function names, and calls to those functions
[YOCTO #8934]
Signed-off-by: Alex Franco <alejandro.franco@linux.intel.com>
---
meta/classes/icecc.bbclass | 56 +++++++++++++++++++++++-----------------------
1 file changed, 28 insertions(+), 28 deletions(-)
diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass
index b4f1be5..e1c06c4 100644
--- a/meta/classes/icecc.bbclass
+++ b/meta/classes/icecc.bbclass
@@ -63,7 +63,7 @@ def create_path(compilers, bb, d):
Create Symlinks for the icecc in the staging directory
"""
staging = os.path.join(d.expand('${STAGING_BINDIR}'), "ice")
- if icc_is_kernel(bb, d):
+ if icecc_is_kernel(bb, d):
staging += "-kernel"
#check if the icecc path is set by the user
@@ -90,13 +90,13 @@ def create_path(compilers, bb, d):
return staging
-def use_icc(bb,d):
+def use_icecc(bb,d):
if d.getVar('ICECC_DISABLED', False) == "1":
# don't even try it, when explicitly disabled
return "no"
# allarch recipes don't use compiler
- if icc_is_allarch(bb, d):
+ if icecc_is_allarch(bb, d):
return "no"
pn = d.getVar('PN', True)
@@ -137,29 +137,29 @@ def use_icc(bb,d):
return "yes"
-def icc_is_allarch(bb, d):
+def icecc_is_allarch(bb, d):
return d.getVar("PACKAGE_ARCH", True) == "all" or bb.data.inherits_class('allarch', d)
-def icc_is_kernel(bb, d):
+def icecc_is_kernel(bb, d):
return \
bb.data.inherits_class("kernel", d);
-def icc_is_native(bb, d):
+def icecc_is_native(bb, d):
return \
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":
+icecc_version[vardepsexclude] += "TARGET_FPU"
+def icecc_version(bb, d):
+ if use_icecc(bb, d) == "no":
return ""
parallel = d.getVar('ICECC_PARALLEL_MAKE', False) or ""
if not d.getVar('PARALLEL_MAKE', False) == "" and parallel:
d.setVar("PARALLEL_MAKE", parallel)
- if icc_is_native(bb, d):
+ if icecc_is_native(bb, d):
archive_name = "local-host-env"
elif d.expand('${HOST_PREFIX}') == "":
bb.fatal(d.expand("${PN}"), " NULL prefix")
@@ -169,7 +169,7 @@ def icc_version(bb, d):
target_sys = d.expand('${TARGET_SYS}')
float = d.getVar('TARGET_FPU', False) or "hard"
archive_name = prefix + distro + "-" + target_sys + "-" + float
- if icc_is_kernel(bb, d):
+ if icecc_is_kernel(bb, d):
archive_name += "-kernel"
import socket
@@ -178,29 +178,29 @@ def icc_version(bb, d):
return tar_file
-def icc_path(bb,d):
- if use_icc(bb, d) == "no":
+def icecc_path(bb,d):
+ if use_icecc(bb, d) == "no":
# don't create unnecessary directories when icecc is disabled
return
- if icc_is_kernel(bb, d):
+ if icecc_is_kernel(bb, d):
return create_path( [get_cross_kernel_cc(bb,d), ], bb, d)
else:
prefix = d.expand('${HOST_PREFIX}')
return create_path( [prefix+"gcc", prefix+"g++"], bb, d)
-def icc_get_external_tool(bb, d, tool):
+def icecc_get_external_tool(bb, d, tool):
external_toolchain_bindir = d.expand('${EXTERNAL_TOOLCHAIN}${bindir_cross}')
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):
+icecc_get_tool[vardepsexclude] += "STAGING_BINDIR_TOOLCHAIN"
+def icecc_get_tool(bb, d, tool):
+ if icecc_is_native(bb, d):
return bb.utils.which(os.getenv("PATH"), tool)
- elif icc_is_kernel(bb, d):
+ elif icecc_is_kernel(bb, d):
return bb.utils.which(os.getenv("PATH"), get_cross_kernel_cc(bb, d))
else:
ice_dir = d.expand('${STAGING_BINDIR_TOOLCHAIN}')
@@ -209,17 +209,17 @@ def icc_get_tool(bb, d, tool):
if os.path.isfile(tool_bin):
return tool_bin
else:
- external_tool_bin = icc_get_external_tool(bb, d, tool)
+ external_tool_bin = icecc_get_external_tool(bb, d, tool)
if os.path.isfile(external_tool_bin):
return external_tool_bin
else:
return ""
-def icc_get_and_check_tool(bb, d, tool):
+def icecc_get_and_check_tool(bb, d, tool):
# Check that g++ or gcc is not a symbolic link to icecc binary in
# PATH or icecc-create-env script will silently create an invalid
# compiler environment package.
- t = icc_get_tool(bb, d, tool)
+ t = icecc_get_tool(bb, d, tool)
if t and os.popen("readlink -f %s" % t).read()[:-1] == get_icecc(d):
bb.error("%s is a symlink to %s in PATH and this prevents icecc from working" % (t, get_icecc(d)))
return ""
@@ -246,27 +246,27 @@ def set_icecc_env():
return
set_icecc_env() {
- if [ "${@use_icc(bb, d)}" = "no" ]
+ if [ "${@use_icecc(bb, d)}" = "no" ]
then
return
fi
- ICECC_VERSION="${@icc_version(bb, d)}"
+ ICECC_VERSION="${@icecc_version(bb, d)}"
if [ "x${ICECC_VERSION}" = "x" ]
then
bbwarn "Cannot use icecc: could not get ICECC_VERSION"
return
fi
- ICE_PATH="${@icc_path(bb, d)}"
+ ICE_PATH="${@icecc_path(bb, d)}"
if [ "x${ICE_PATH}" = "x" ]
then
bbwarn "Cannot use icecc: could not get ICE_PATH"
return
fi
- ICECC_CC="${@icc_get_and_check_tool(bb, d, "gcc")}"
- ICECC_CXX="${@icc_get_and_check_tool(bb, d, "g++")}"
- # cannot use icc_get_and_check_tool here because it assumes as without target_sys prefix
+ ICECC_CC="${@icecc_get_and_check_tool(bb, d, "gcc")}"
+ ICECC_CXX="${@icecc_get_and_check_tool(bb, d, "g++")}"
+ # cannot use icecc_get_and_check_tool here because it assumes as without target_sys prefix
ICECC_WHICH_AS="${@bb.utils.which(os.getenv('PATH'), 'as')}"
if [ ! -x "${ICECC_CC}" -o ! -x "${ICECC_CXX}" ]
then
--
2.7.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-03-24 1:38 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-24 1:39 [PATCHv3 0/3] fix icecc support Alex Franco
2016-03-24 1:39 ` [PATCHv3 1/3] icecc.bbclass: add icc_is_allarch inherit check Alex Franco
2016-03-24 1:39 ` [PATCHv3 2/3] icecc.bbclass: expand package arch Alex Franco
2016-03-24 1:39 ` [PATCHv3 3/3] icecc.bbclass: replace icc with icecc Alex Franco
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox