]> code.ossystems Code Review - openembedded-core.git/commit
icecc: Don't generate recipe-sysroot symlinks at recipe-parsing time
authorDouglas Royds <douglas.royds@taitradio.com>
Wed, 19 Dec 2018 22:59:47 +0000 (11:59 +1300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 28 Jan 2019 16:56:26 +0000 (16:56 +0000)
commit46db052def5c4fa0de7943262092582c8d897117
treefda213ec05e79283ebf01c0360a3c1179c108ad0
parentd4ec47005d29e30b31bc61fe126b385e9e781228
icecc: Don't generate recipe-sysroot symlinks at recipe-parsing time

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>
meta/classes/icecc.bbclass