summaryrefslogtreecommitdiffstats
path: root/meta/classes/icecc.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* icecc.bbclass: replace icc with iceccAlex Franco2016-03-281-28/+28
| | | | | | | | | | | | | 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] (From OE-Core rev: daf59103c26ca8f1be7229f73a5b496d862e1f1e) Signed-off-by: Alex Franco <alejandro.franco@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc.bbclass: expand package archAlex Franco2016-03-281-1/+1
| | | | | | | | | | | | Expanding PACKAGE_ARCH might be necessary as it is being checked against to determine if this is allarch [YOCTO #8934] (From OE-Core rev: 45c59ffb742568e4f0d8cf53e4dfba5198bdc9f0) Signed-off-by: Alex Franco <alejandro.franco@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc.bbclass: add icc_is_allarch inherit checkAlex Franco2016-03-281-1/+1
| | | | | | | | | | | | | 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] (From OE-Core rev: 0f9a3b445186b58d2c1f731da94c6b3a05494369) Signed-off-by: Alex Franco <alejandro.franco@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Add explict getVar param for (non) expansionRichard Purdie2015-06-231-12/+12
| | | | | | | | | | | | | | 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 *` (From OE-Core rev: ab7c1d239b122c8e549e8112c88fd46c9e2b061b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc.bbclass: blacklist libgcc-initialDmitry Eremin-Solenikov2015-04-281-1/+2
| | | | | | | | | | | | | | | | | 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 (From OE-Core rev: 0fe64b080cc9854979b501908060aeb9811d9973) Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc.bbclass: properly handle disabling of iceccDmitry Eremin-Solenikov2015-01-161-8/+7
| | | | | | | | | | | 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. (From OE-Core rev: 20b0168da47d6e30fcbaf6adab3bde0d398d0d00) Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: don't create unnecessary 'ice' dirs in sysroots when disabledMartin Jansa2014-04-231-2/+10
| | | | | | | | | | | | | | | | | | | | | * 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 '' (From OE-Core rev: c3e8bfe30685e2357a6eb3ba8f4a014c7dc9f58e) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: use exact match in blacklists, re-start with empty ↵Martin Jansa2014-01-211-15/+18
| | | | | | | | | | | | | | | | | 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). (From OE-Core rev: 5a5319d2e6f41bb0e290d6a1decbd996e9572690) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Fix allarch and native recipes having different signaturesMartin Jansa2014-01-211-0/+4
| | | | | | | | | | | | * 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? (From OE-Core rev: 418a353a011ca8f04ecc3e2d29f2d1a415492081) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: use bb.utils.which also for 'as'Martin Jansa2014-01-211-1/+6
| | | | | | | | | | | | | | | | | | * 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 (From OE-Core rev: 6092da20fc3ceb1bc6b4872ad16df565f05723b7) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Don't replace non-empty PARALLEL_MAKE with empty ICECC_PARALLEL_MAKEMartin Jansa2014-01-211-1/+1
| | | | | | | | | | | | | | | | | | | | * 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. (From OE-Core rev: 7e586d5b7c8c7f20eafc32624200f60a8ed9a582) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc.bbclass: Fix whitespace, improve commentMartin Jansa2013-12-051-14/+15
| | | | | | | | | | | * 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' (From OE-Core rev: e220c8e308caac6ef1da038697927425a807d2f2) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/icecc: fix typos in header commentsPaul Eggleton2013-12-031-1/+1
| | | | | | | | | | | | 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. (From OE-Core rev: b325e46059efe6974abf01131dca3f2094a6bf90) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Disable icecc for allarch recipesMartin Jansa2013-11-291-0/+8
| | | | | | | | | | | | | * 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. (From OE-Core rev: a956f9d91c8128e43b55c6bc01337472e47fe43a) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Use bb.utils.which instead of calling whichTobias Henkel2013-11-201-3/+3
| | | | | | | | | | | | | 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. (From OE-Core rev: 7ed7aa38182ce8c7300a08e3aefcc65da2b524a8) Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Fix race condition when packaging toolchainTobias Henkel2013-11-121-2/+29
| | | | | | | | | | | | 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. (From OE-Core rev: 8a30be803e91e66688cfc27ca4c21f26fb22eed8) Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Add package whitelistTobias Henkel2013-11-121-3/+11
| | | | | | | | | | | | | | 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. (From OE-Core rev: d2735ac44887c7e01134d6870a4875a786501eba) Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Support shell evaluation of KERNEL_CCTobias Henkel2013-11-121-1/+7
| | | | | | | | | | | | | | | | 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. (From OE-Core rev: b28bae30fc5d8d1d7cc675ddb4159c39fb9bc3fd) Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Enable icecc also for install stepTobias Henkel2013-11-121-3/+3
| | | | | | | | | | | 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. (From OE-Core rev: bb1366cebb60593fc21fd7a9a678a159da8ec81c) Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Add dummy python version of set_icecc_envTobias Henkel2013-11-121-0/+4
| | | | | | | | | | | | | | | 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. (From OE-Core rev: 365dec500166b8eb9d64c573dd7139d3a26ae445) Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Add blacklist vars to BB_HASHBASE_WHITELISTTobias Henkel2013-11-121-1/+1
| | | | | | | | | | Changing any of the ICECC blacklist variables should not change the sstate checksum as this doesn't influence the build result. (From OE-Core rev: 0f7dc969e64bc7563e208a4fb7d3ebe7c4e69e79) Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Reduce verbosity with empty PARALLEL_MAKETobias Henkel2013-11-121-1/+1
| | | | | | | | | | | | | 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. (From OE-Core rev: 6d2735629c20560a9406964195726b1a6e2d7d99) Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Log reason in error casesTobias Henkel2013-11-121-0/+4
| | | | | | | | | | | | The current implementation doesn't give a hint about the cause in case something went wrong in set_icecc_env. This makes it harder to find out why a package is not being built using icecc. Therefore warnings are inserted in the various error cases. (From OE-Core rev: 0adea170c7019304471d442784fa0eb9bfcdf94b) Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: Allow to use this bbclass together with external toolchainsMartin Jansa2013-04-111-4/+33
| | | | | | | | | * original implementation by Antti Harju (From OE-Core rev: abb5bd9f2d3583808b61a0832378e4db45022be6) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc: improve interaction with sstateMartin Jansa2013-03-151-0/+6
| | | | | | | | | | | | | | | | | | | | * exclude ICECC_PARALLEL_MAKE (like PARALLEL_MAKE is) * add ICECC_DISBLED to be able to disable whole icecc functionality while keeping icecc enabled. This is useful when you want multiple builders sharing same sstate-cache, but only some of them using icecc. * inheriting icecc changes all checksums because of do_*_prepends calls, but because icecc should not influence binary output of task we should get same checksums for tasks build with and without icecc * ICECC_DISABLED when set (to any non-empty value will disable icecc env modifications but while keeping same sstate checksum (From OE-Core rev: f46cf86d0ec3b80ce526b4dad1b1eac5995969ec) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "meta: replace os.popen with subprocess.Popen"Richard Purdie2012-05-301-3/+3
| | | | | | | | | This reverts commit e83d8e58a6b107eea87df0ec233a1bc932b2c6e as the conversion is not correct. Its replacing readlines() calls which generate an array with what are effectively strings. There are split("\n") calls missing in many cases so this needs to be reverted until it gets fixed. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: replace os.popen with subprocess.PopenRobert Yang2012-05-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | Replace os.popen with subprocess.Popen since the older function would fail (more or less) silently if the executed program cannot be found There are both bb.process.run() and bb.process.Popen() which wraps the subprocess module, use it for simplifying the code. Note: We don't need the "2>/dev/null" or "2>&1" since bb.process.run() can handle it, it will raise exception when error occurs, we should handle the exception ourselves if we want to ignore the error. More info: http://docs.python.org/library/subprocess.html#subprocess-replacements [YOCTO #2454] (From OE-Core rev: e83d8e58a6b107eea87df0ec233a1bc932b2c6ea) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Various typoes fixed, all comments or output strings.Robert P. J. Day2012-03-261-1/+1
| | | | | | | | | Typoes fixed: "enviroment", "editted", "spliting", "scheulder". (From OE-Core rev: 17e981a857a51b0bec08c929e8539d36d83874b6) Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Replace bb.data.expand(xxx, d) -> d.expand(xxx)Richard Purdie2012-03-051-13/+13
| | | | | | | | sed \ -e 's:bb.data.\(expand([^,()]*\), *\([^) ]*\) *):\2.\1):g' \ -i `grep -ril bb.data.expand *` Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc.bbclass: also use icecc for kernel modules compilationDmitry Eremin-Solenikov2011-12-191-0/+4
| | | | | | | (From OE-Core rev: 7da58c6fdaa8feef5ee5637dfb74912e7e4f5394) Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Convert to use direct access to the data store (instead of bb.data.*Var*())Richard Purdie2011-11-101-8/+8
| | | | | | | | | | | | | | | | | This is the result of running the following over the metadata: sed \ -e 's:bb.data.\(setVar([^,()]*,[^,()]*\), *\([^ )]*\) *):\2.\1):g' \ -e 's:bb.data.\(setVarFlag([^,()]*,[^,()]*,[^,()]*\), *\([^) ]*\) *):\2.\1):g' \ -e 's:bb.data.\(getVar([^,()]*\), *\([^(), ]*\) *,\([^)]*\)):\2.\1,\3):g' \ -e 's:bb.data.\(getVarFlag([^,()]*,[^,()]*\), *\([^(), ]*\) *,\([^)]*\)):\2.\1,\3):g' \ -e 's:bb.data.\(getVarFlag([^,()]*,[^,()]*\), *\([^() ]*\) *):\2.\1):g' \ -e 's:bb.data.\(getVar([^,()]*\), *\([^) ]*\) *):\2.\1):g' \ -i `grep -ril bb.data *` (From OE-Core rev: b22831fd63164c4db9c0b72934d7d734a6585251) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc.bbclass: fix handling of nativesdk and cross-canadian packagesDmitry Eremin-Solenikov2011-09-221-3/+1
| | | | | | | | | | | icecc.bbclass assumed that nativesdk and cross-canadian packages should use local icecc version. Instead those packages should use target-like scheme for toolchain tarball generation. (From OE-Core rev: 394c7c8cf262efeaafce40dc5eb480a1e041ac50) Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc-create-env: rename to -nativeDmitry Eremin-Solenikov2011-09-221-1/+1
| | | | | | | | | | | | | icecc-create-env(-native) is a native package. But if it doesn't have the -native suffix, some dependency tracking stuff in oe-core (in nativesdk.bbclass) get's crazy about it, trying to generate dependencies to icecc-create-env-native packages. To fix that simply add -native suffix to this package. (From OE-Core rev: 83f9ebe9afb8bec4531899f8001a585c974e1db4) Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc.bbclass: replace with updated versionDmitry Eremin-Solenikov2011-09-161-246/+144
| | | | | | | | | | | | | Replace a non-working icecc class with a rewritten one. It's cleaned up, most things are handled now in shell scripts, as it's possible that toolchains won't exist at the time of parsing/python substitution. Packages which empty PARALLEL_MAKE are ignored now, as not to break them. (From OE-Core rev: 3a842ec52e7d010767b13bdcb5629ac07b3ee9e7) Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Install cross-packages into the native sysrootJoshua Lock2010-04-271-3/+3
| | | | | | | | | | | Cross is no longer required so can go away, we now install cross packages into the native sysroot and use them from there. This patch includes updates to classes and some recipes which reference CROSS_DIR. Others still need fixing an image can be built and run with this patch applied. Signed-off-by: Joshua Lock <josh@linux.intel.com>
* rootfs_rpm/icecc: Sync whitespace with OE.devRichard Purdie2009-11-161-25/+10
| | | | Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
* classes: Remove and sanitise import statementsRichard Purdie2009-11-131-6/+3
| | | | Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
* icecc.bbclass: Sync from OERichard Purdie2007-12-011-7/+10
| | | | git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3292 311d38ba-8fff-0310-9ca6-ca027cbcb966
* classes: Sync various classes with OE for various bugfixesRichard Purdie2007-08-081-76/+233
| | | | git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2407 311d38ba-8fff-0310-9ca6-ca027cbcb966
* classes: Sync with OE - mainly quoting fixes or other minor updatesRichard Purdie2006-11-201-1/+1
| | | | git-svn-id: https://svn.o-hand.com/repos/poky/trunk@885 311d38ba-8fff-0310-9ca6-ca027cbcb966
* classes: Sync with OERichard Purdie2006-08-271-49/+71
| | | | git-svn-id: https://svn.o-hand.com/repos/poky/trunk@651 311d38ba-8fff-0310-9ca6-ca027cbcb966
* Rename /openembedded/ -> /meta/Richard Purdie2006-07-211-0/+156
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@530 311d38ba-8fff-0310-9ca6-ca027cbcb966