aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/icecc.bbclass
AgeCommit message (Collapse)Author
2020-09-16icecc.bbclass: stop causing everything to be effectivelly MACHINE_ARCHMartin Jansa
* since this change: commit d2fcaeb153fdc3f8d7143ea823139f1537055ff1 Author: Douglas Royds <douglas.royds@taitradio.com> Date: Thu Dec 20 11:59:47 2018 +1300 icecc: Don't generate recipe-sysroot symlinks at recipe-parsing time the set_icecc_env function depends on KERNEL_CC variable even for recipes like linux-libc-headers * KERNEL_CC variable depends on STAGING_KERNEL_DIR: Variable KERNEL_CC value is ${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_KERNEL_ARCH} -fuse-ld=bfd ${DEBUG_PREFIX_MAP} -fdebug-prefix-map=${STAGING_KERNEL_DIR}=${KERNEL_SRC_PATH} List of dependencies for variable KERNEL_CC is {'STAGING_KERNEL_DIR', 'HOST_PREFIX', 'DEBUG_PREFIX_MAP', 'HOST_CC_KERNEL_ARCH', 'KERNEL_SRC_PATH'} which depends on MACHINE: Variable STAGING_KERNEL_DIR value is ${TMPDIR}/work-shared/${MACHINE}/kernel-source List of dependencies for variable STAGING_KERNEL_DIR is {'MACHINE'} * as detected with: openembedded-core/scripts/sstate-diff-machines.sh --tmpdir=tmp-glibc --machines="qemux86 qemux86copy qemuarm" --targets=glibc --analyze ERROR: linux-libc-headers different signature for task do_configure.sigdata between qemux86 and qemux86copy NOTE: Starting bitbake server... basehash changed from 3146f4ffeb002bd69fed7656a4b896365b2e2a00071c69e1afbb672889e754ee to f1a5160e39912e61389b6f9fe68d61146a2be91716ac37e4a32ecf4c09b2b5fa Variable MACHINE value changed from 'qemux86' to 'qemux86copy' $ bitbake-diffsigs /OE/build/oe-core/tmp-glibc/sstate-diff/1556122458/qemux86*/*/linux-libc-headers/*do_configure.sigdata* NOTE: Starting bitbake server... basehash changed from f1a5160e39912e61389b6f9fe68d61146a2be91716ac37e4a32ecf4c09b2b5fa to 3146f4ffeb002bd69fed7656a4b896365b2e2a00071c69e1afbb672889e754ee Variable MACHINE value changed from 'qemux86copy' to 'qemux86' Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2019-01-28icecc: patchelf is needed by icecc-create-envDouglas Royds
Although we could potentially build patchelf and all its dependencies, they would all have to be blacklisted to avoid trying to build them with icecc. We use the host patchelf instead. (From OE-Core rev: 0860216a81092fba084d29696db6d0c65a226c85) Signed-off-by: Douglas Royds <douglas.royds@taitradio.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2019-01-28icecc: Don't generate recipe-sysroot symlinks at recipe-parsing timeDouglas Royds
The python function icecc_path() was being invoked inline by set_icecc_env(), meaning that it was being invoked at recipe-parsing time. As a side-effect, icecc_path() was creating the recipe-sysroot directory and symlinking icecc into it. Because this was done at parsing time (rather than configure time), we were generating otherwise-empty WORKDIRs for *all* parsed recipes, and for all virtual classes (-native, -nativesdk). In my build, this generated more than 800 of these otherwise-empty WORKDIRs. I have simplified icecc_path() to return only the intended path to the icecc symlinks in the recipe-sysroot, with no side-effect. We then create the directory and the icecc symlinks at configure time. Because get_cross_kernel_cc() is still invoked at parse-time, it needs a guard-clause for the non-kernel case. We are now finding the host icecc at do_configure time, so icecc needs to be in the HOSTTOOLS. I have made this non-fatal, so that we can still inherit icecc without icecc installed. (From OE-Core rev: d2fcaeb153fdc3f8d7143ea823139f1537055ff1) Signed-off-by: Douglas Royds <douglas.royds@taitradio.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2019-01-28icecc: Syntax error meant that we weren't waiting for tarball generationDouglas Royds
If two bitbake processes try to generate the ICECC_VERSION tarball at the same time, the thread that fails to get the lock will wait 30 sec for the first to finish. A syntax error meant that this was not happening, and in particular, if tarball generation failed (eg. for lack of patchelf), it did so silently. (From OE-Core rev: 4455c46bf7f49c2b44f250aa89b63b342368e2e3) Signed-off-by: Douglas Royds <douglas.royds@taitradio.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2019-01-28icecc: Trivial simplificationDouglas Royds
(From OE-Core rev: fa6bae80bc3392bf99ce53bbe19a0e05dbd0c4ee) Signed-off-by: Douglas Royds <douglas.royds@taitradio.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2019-01-28icecc: readlink -f on the recipe-sysroot gcc/g++Douglas Royds
We were accidentally doing a readlink -f on simply 'gcc', for instance (From OE-Core rev: 6d6788a3ea45d9693743d9b3319fb0368a4d5d33) Signed-off-by: Douglas Royds <douglas.royds@taitradio.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2019-01-08classes/icecc.bbclass: Fix ccache disableJoshua Watt
The ccache disable flag was misspelled, preventing it from being disabled. (From OE-Core rev: 33fba601a7365aced9f4b206c1fadda997076d4c) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2019-01-08meta/icecc.bbclass: Update system blacklistsJoshua Watt
Updates the system blacklists to include packages that are known to have problems compiling under icecream (From OE-Core rev: fc5418e7bbdecfb27bafe595084e0fd0f991a388) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2019-01-08meta/icecc.bbclass: Move system blacklist to variablesJoshua Watt
The system blacklists are moved to variables which are ignore when hashing. This prevents changes to the blacklists from causing all taskhashes to change (and thus rebuild). (From OE-Core rev: f5be9f6e9180ace3362bba52c7ced3b039441d7d) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2018-09-12allarch: only enable allarch when multilib is not usedKai Kang
Some allarch packages rdepends non-allarch packages. when multilib is used, it doesn't expand the dependency chain correctly, e.g. core-image-sato -> ca-certificates(allarch) -> openssl we expect dependency chain for lib32-core-image-sato: lib32-core-image-sato -> ca-certificates(allarch) -> lib32-openssl it should install lib32-openssl for ca-certificates but openssl is still wrongly required. Only enable allarch when multilib is not used to fix the issue. Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-23Revert "icecc.bbclass: Improve error reporting"Joshua Watt
This reverts commit b28114cf1e58643bd233bc0c83d6d8138952b7ac. The "-E" option for flock is not ubiquitously supported, so don't use it. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13icecc.bbclass: Bump version numberJoshua Watt
Bump the version number for force remotes to use a newly generated environment, since the old one potentially had a few bugs Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13icecc.bbclass: Improve error reportingJoshua Watt
Improve reporting when the icecream environment cannot be created by assigning the flock call a specific error number when the lock fails so it can be distinguished from environment creation errors. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-04-13icecc.bbclass: Add ICECC_ENV_DEBUG variableJoshua Watt
The ICECC_ENV_DEBUG variable can be set in local.conf to pass additional debugging options to the Icecream toolchain creation script. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-03-03icecc: Remove several getVar() expand argumentsJoshua Watt
Several of the calls to getVar() were either superfluously passing True for the expand argument, or were wrongly passing False Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-03-01icecc.bbclass: Ignore more icecream vars in hashesJoshua Watt
Changing ICECC_ENV_VERSION or select variables that the user can set to control the behavior of icecc should not cause recipes to rebuild Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-02-24icecc.bbclass: Remove icecream from uninativeJoshua Watt
The icecream native tools should not be included in uninative tarballs even though it is nativesdk Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-02-24icecc.bbclass: Add environment versionJoshua Watt
Adds a version to the environment which can be used to invalidate any previous environments on the remote compile nodes Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-02-24icecc.bbclass: Fix combining with ccacheJoshua Watt
Fixes the case where ccache is enabled along with Icecream. In these cases, there is the danger that Icecream will accidentally add the ccache executable to the toolchain, which prevents it from working. In particular, Fedora enables ccache by default via symbolic links in PATH. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-02-15icecc.bbclass: Disable caret workaround by defaultJoshua Watt
Icecream has a behavior that causes it to recompile files locally if gcc generates any warnings or errors. The reason for this is that GCC tries to re-read the input file in order to display the offending line with a caret below it, which doesn't work in the remote chroot. Default to disabling this this workaround and add -fno-diagnostics-show-caret to the GCC flags so that errors and warnings generated by GCC do not show erroneous results. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-02-15icecc.bbclass: Add Icecream support to SDKJoshua Watt
If icecc is inherited, generated SDKs will automatically have optional support for compiling using the Icecream distributed compiler Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-02-15icecc.bbclass: Skip canadian-cross compilesJoshua Watt
icecc.bbclass will no longer attempt to distribute cross-canadian compiles. While it is technically possible to generate a toolchain that runs on the build system and generates executables for the host system, this is not the normal way that icecc operates. There are so few of these recipes that it is probably not worth maintaining a distinct code path for them. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-02-15icecc.bbclass: Fix STAGING_BINDIR_TOOLCHAIN usageJoshua Watt
STAGING_BINDIR_TOOLCHAIN is actually a path list, not a single path. Fix icecc.bbclass to try all the paths in the variable instead of treating it as a single path. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-02-15icecc.bbclass: Move to shared work directoryJoshua Watt
Generate the icecc toolchains in a shared work directory. This class was already setup to correctly synchronize creating the toolchains in a shared location before the RSS changes, so return to that behavior instead of generated the toolchains in each recipe's sysroot. Additionally, it makes no sense for each recipe to generate a toolchain, only to find it was already generated and uploaded to the compile server by another recipe. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-21icecc.bbclass: prevent nativesdk builds depending on target specific KERNEL_CCMartin Jansa
* without this we cause nativesdk-linux-libc-headers to depend on target specific KERNEL_CC (through icecc_get_tool -> icecc_is_kernel -> KERNEL_CC -> HOST_CC_KERNEL_ARCH -> TARGET_CC_KERNEL_ARCH -> TUNE_FEATURES(thumb) as shown by bitbake-diffsigs: OE qemux86@ ~/build/oe-core $ ls /OE/build/oe-core/tmp-glibc/sstate-diff/1499859497/qemu*/*sdk*/*/*do_configure.sigdata* /OE/build/oe-core/tmp-glibc/sstate-diff/1499859497/qemuarm/x86_64-nativesdk-oesdk-linux/nativesdk-linux-libc-headers/4.10-r0.do_configure.sigdata.3a9a423878d56524e0ee8e42eba1804f /OE/build/oe-core/tmp-glibc/sstate-diff/1499859497/qemux86/x86_64-nativesdk-oesdk-linux/nativesdk-linux-libc-headers/4.10-r0.do_configure.sigdata.401071dbaa88903ece37d35a47965ff2 OE qemux86@ ~/build/oe-core $ bitbake-diffsigs /OE/build/oe-core/tmp-glibc/sstate-diff/1499859497/qemu*/*sdk*/*/*do_configure.sigdata* basehash changed from 39774238b66763c598153132e87a2c1a to aa2d66e770bf533e312536eb0a401c4c Variable TARGET_CC_KERNEL_ARCH value changed from '${@bb.utils.contains('TUNE_FEATURES', 'thumb', '-mno-thumb-interwork-marm', '', d)} TUNE_FEATURES{thumb} = Set' to '' Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-06-16meta: Remove further uclibc remnants (inc. patches and site files)Richard Purdie
Some of these are clearly dead, e.g. one binutils patch reverts the effects of the earlier one. This also removes the uclibc site files. We now have mechanisms to allow these to be extended from another layer should someone ever wish to do that. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-12-16meta: remove True option to getVar callsJoshua Lock
getVar() now defaults to expanding by default, thus remove the True option from getVar() calls with a regex search and replace. Search made with the following regex: getVar ?\(( ?[^,()]*), True\) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-10-05icecc.bbclass: replace os.popen with subprocess.check_outputMartin Jansa
* otherwise there is a lot of warnings about missing close on file descriptor Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-26icecc.bbclass: replace icc with iceccAlex Franco
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> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-26icecc.bbclass: expand package archAlex Franco
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> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-26icecc.bbclass: add icc_is_allarch inherit checkAlex Franco
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> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-23meta: Add explict getVar param for (non) expansionRichard Purdie
Rather than just use d.getVar(X), use the more explict d.getVar(X, False) since at some point in the future, having the default of expansion would be nice. This is the first step towards that. This patch was mostly made using the command: sed -e 's:\(getVar([^,()]*\)\s*):\1, False):g' -i `grep -ril getVar *` Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-28icecc.bbclass: blacklist libgcc-initialDmitry Eremin-Solenikov
Building libgcc-initial with IceCC enabled can fail with the CPP sanity check error in the following case (using ARM for example): * sysroot contains cross gcc built for another ARM variant * sysroot contains initial cross gcc built to suit the target machine * bitbake tries to configure libgcc-initial * libgcc-initial calls icecc wrapper * icecc wrapper calls non-initial cross gcc via the full path * non-initial cross gcc looks for the headers in the wrong place * BOOM Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-16icecc.bbclass: properly handle disabling of iceccDmitry Eremin-Solenikov
Always use use_icc to check if IceCC should be enabled. Move ICECC_DISABLED variable checking to use_icc function. Also while we are at it, fix condition in icc_is_allarch function. Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-23icecc: don't create unnecessary 'ice' dirs in sysroots when disabledMartin Jansa
* parsing ICE_PATH="${@icc_path(bb, d)}" causes "ice" directories to be created in every sysroot, that could be a bit confusing for people who inherit icecc.bbclass, but disabled it * shorten ICECC_VERSION="${@icc_version(bb, d)}" path a bit by returning sooner when disabled * remove ICECC_PATH and ICECC_ENV_EXEC from signatures, we assume that using icecc doesn't influence the output, so it shouldn't matter when user supplies own version of icecc or env script * always compare ICECC_DISABLED with "1", boolean typed_value isn't used because documentation already mentions using empty value to keep icecc enabled and that's not valid boolean value when oe.data.typed_value is used: ERROR: ICECC_DISABLED: Invalid boolean value '' Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-19icecc: use exact match in blacklists, re-start with empty ↵Martin Jansa
system_package_blacklist * unify debug messages a bit * old implementation allowed partial match in blacklist, it's safer to explicitly list exact matches * I was able to build all entries from system_package_blacklist with icecc enabled, lets assume that they were already resolved by newer versions (we've fixed a lot of parallel issues in recipes which were detected even without icecc and this list is very old). Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-19icecc: Fix allarch and native recipes having different signaturesMartin Jansa
* for different MACHINES * is there more elegant way to have "overridable" function so that signature handler properly uses only the branch without STAGING_BINDIR_TOOLCHAIN? Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-19icecc: use bb.utils.which also for 'as'Martin Jansa
* it was introduced in commit 3a842ec52e7d010767b13bdcb5629ac07b3ee9e7 Author: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Date: Fri Sep 16 10:55:16 2011 +0400 Subject: icecc.bbclass: replace with updated version without any explanation in which case ${ICECC_CC} -print-prog-name=as is returning as in current working directory, but will keep old behavior just in case Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-19icecc: Don't replace non-empty PARALLEL_MAKE with empty ICECC_PARALLEL_MAKEMartin Jansa
* it's needed for use-case like this: # Inherit icecc here, so that all builders have the same sstate signatures INHERIT_DISTRO += "icecc" # and then disable its function by default (so that people still need to explicity # enable it in local.conf if they have configured icecc and want to use it. # You need to set _empty_ value in local.conf to enable icecc function: # ICECC_DISABLED = "" ICECC_DISABLED ??= "1" * so default ICECC_PARALLEL_MAKE is still empty, but we want build to respect our PARALLEL_MAKE, unfortunately we cannot do something like ICECC_PARALLEL_MAKE ??= "${PARALLEL_MAKE}", because that would cause PARALLEL_MAKE to reference itself. Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-05icecc.bbclass: Fix whitespace, improve commentMartin Jansa
* Add leading space in big documentation block at the top * Drop trailing spaces in code * Update documentation to mention 'bb.utils.which' instead of 'which' Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-03classes/icecc: fix typos in header commentsPaul Eggleton
Looking at the code, it should be ICECC_USER_PACKAGE_BL and not ICECC_PACKAGE_BL here, and also fix "localy" -> "locally". Thanks to Scott Rifenbark for pointing this out. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-27icecc: Disable icecc for allarch recipesMartin Jansa
* Fix icecc.bbclass failing with: ERROR: recipe-name NULL prefix when it's used with empty TARGET_PREFIX. * Allarch recipes cannot use compiler at all (even the local one) so there is no point of using icecc for them. Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-20icecc: Use bb.utils.which instead of calling whichTobias Henkel
The icecc class often calls 'which' for determining paths. This leads to many messages on stderr in case 'which' doesn't find the executable. Using bb.utils.which is more appropriate here and doesn't pollute stderr. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-11-12icecc: Fix race condition when packaging toolchainTobias Henkel
In the current implementation there can be a race condition while creating the toolchain archive causing the build to break. This is fixed by locking the toolchain archiving step using flock. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Add package whitelistTobias Henkel
There are some recipes which parse the PARALLEL_MAKE variable by their own and set them to an empty string afterwards. This disables icecc for this recipe. Adding a whitelist for forcing icecc makes it possible to use icecc also with these recipes. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Support shell evaluation of KERNEL_CCTobias Henkel
In the current implementation a KERNEL_CC variable containing shell evaluation breaks the build process. Shell expansion is not happening before general expansion in get_cross_kernel_cc which results in a syntax error and an aborted parse process. Before expanding the KERNEL_CC variable get_cross_kernel_cc now checks for backticks or '$(' in the KERNEL_CC variable and performs a shell evaluation using a call to echo if it finds one. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Enable icecc also for install stepTobias Henkel
Some packages are calling the compiler in the install step. In this case either the build breaks or icecc is not used for building. The proper environment has to be set to enable icecc based building. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Add dummy python version of set_icecc_envTobias Henkel
Bitbakes prepend mechanism for the tasks disregards the type of the function. Thus bitbaking recipes using python functions for configure, compile or install steps fail due to the missing python version of set_icecc_env. Assuming that icecc doesn't need to be used in such situations adding a dummy python version of set_icecc_env fixes this. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Add blacklist vars to BB_HASHBASE_WHITELISTTobias Henkel
Changing any of the ICECC blacklist variables should not change the sstate checksum as this doesn't influence the build result. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Reduce verbosity with empty PARALLEL_MAKETobias Henkel
Currently the icecc class prints a note for every package which disables parallel make at parse time. This is unneccessary as many packages don't support parallel building. Changing the log level from info to debug hides these messages in normal builds without removing the information when needed. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>