Commit Graph

31 Commits

Author SHA1 Message Date
Martin Jansa f750d65e15 icecc.bbclass: Fix whitespace, improve comment
* 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>
2013-12-05 14:25:27 +00:00
Paul Eggleton da88c5ffec classes/icecc: fix typos in header comments
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>
2013-12-03 12:39:00 +00:00
Martin Jansa 572a8eb874 icecc: Disable icecc for allarch recipes
* 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>
2013-11-29 09:52:57 +00:00
Tobias Henkel 17c155b9c3 icecc: Use bb.utils.which instead of calling which
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>
2013-11-20 14:03:27 +00:00
Tobias Henkel 78c6e69bbe icecc: Fix race condition when packaging toolchain
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>
2013-11-12 16:00:29 +00:00
Tobias Henkel 0dbd5456f9 icecc: Add package whitelist
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>
2013-11-12 16:00:29 +00:00
Tobias Henkel 19c65b25a9 icecc: Support shell evaluation of KERNEL_CC
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>
2013-11-12 16:00:29 +00:00
Tobias Henkel d283bfd960 icecc: Enable icecc also for install step
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>
2013-11-12 16:00:29 +00:00
Tobias Henkel be181972e4 icecc: Add dummy python version of set_icecc_env
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>
2013-11-12 16:00:29 +00:00
Tobias Henkel 54f52bcd33 icecc: Add blacklist vars to BB_HASHBASE_WHITELIST
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>
2013-11-12 16:00:29 +00:00
Tobias Henkel 280a4922e7 icecc: Reduce verbosity with empty PARALLEL_MAKE
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>
2013-11-12 16:00:29 +00:00
Tobias Henkel 79272eb058 icecc: Log reason in error cases
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>
2013-11-12 16:00:28 +00:00
Martin Jansa 230441f0c8 icecc: Allow to use this bbclass together with external toolchains
* 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>
2013-04-11 15:44:23 +01:00
Martin Jansa 1ceb13dda1 icecc: improve interaction with sstate
* 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>
2013-03-15 01:53:05 +00:00
Richard Purdie 0d9e893711 Revert "meta: replace os.popen with subprocess.Popen"
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>
2012-05-30 14:21:29 +01:00
Robert Yang 5996b2b58e meta: replace os.popen with subprocess.Popen
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>
2012-05-30 12:04:45 +01:00
Robert P. J. Day 951aa5ea1f Various typoes fixed, all comments or output strings.
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>
2012-03-26 12:13:05 +01:00
Richard Purdie b1aeaa8b0d meta: Replace bb.data.expand(xxx, d) -> d.expand(xxx)
sed \
 -e 's:bb.data.\(expand([^,()]*\), *\([^) ]*\) *):\2.\1):g' \
 -i `grep -ril bb.data.expand *`

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-05 10:23:53 -08:00
Dmitry Eremin-Solenikov ba8f367610 icecc.bbclass: also use icecc for kernel modules compilation
(From OE-Core rev: 7da58c6fdaa8feef5ee5637dfb74912e7e4f5394)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-12-19 09:29:17 +00:00
Richard Purdie c8dee9b92d Convert to use direct access to the data store (instead of bb.data.*Var*())
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>
2011-11-10 11:51:19 +00:00
Dmitry Eremin-Solenikov 72ff0c54b9 icecc.bbclass: fix handling of nativesdk and cross-canadian packages
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>
2011-09-22 05:12:29 +01:00
Dmitry Eremin-Solenikov 3d69181692 icecc-create-env: rename to -native
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>
2011-09-22 05:12:28 +01:00
Dmitry Eremin-Solenikov 849bf66e28 icecc.bbclass: replace with updated version
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>
2011-09-16 18:07:26 +01:00
Joshua Lock c22ab5fc9f Install cross-packages into the native sysroot
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>
2010-04-27 18:29:57 +01:00
Richard Purdie 01f75c1b48 rootfs_rpm/icecc: Sync whitespace with OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 10:51:24 +00:00
Richard Purdie c54117458a classes: Remove and sanitise import statements
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:28 +00:00
Richard Purdie 25110f59cc icecc.bbclass: Sync from OE
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3292 311d38ba-8fff-0310-9ca6-ca027cbcb966
2007-12-01 18:36:52 +00:00
Richard Purdie 720e0b144c classes: Sync various classes with OE for various bugfixes
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2407 311d38ba-8fff-0310-9ca6-ca027cbcb966
2007-08-08 20:41:55 +00:00
Richard Purdie e09dab0614 classes: Sync with OE - mainly quoting fixes or other minor updates
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@885 311d38ba-8fff-0310-9ca6-ca027cbcb966
2006-11-20 15:19:39 +00:00
Richard Purdie 93a8d0662e classes: Sync with OE
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@651 311d38ba-8fff-0310-9ca6-ca027cbcb966
2006-08-27 16:01:33 +00:00
Richard Purdie b2f192faab Rename /openembedded/ -> /meta/
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@530 311d38ba-8fff-0310-9ca6-ca027cbcb966
2006-07-21 10:10:31 +00:00