icecc: don't use KERNEL_CC during set_icecc_env

The KERNEL_CC variable usage was introduced by commit d2fcaeb153fd
("icecc: Don't generate recipe-sysroot symlinks at recipe-parsing time,
2018-12-20") and is set once a recipe pulls the kernel-arch.bbclass.
There are a few packages, e.g. u-boot, barebox, devicetree, perf which
pull this class and for such packages the get_cross_kernel_cc() return
None because icecc_is_kernel() fail.

Fix this for now by replacing the KERNEL_CC check with the
icecc_is_kernel() helper, which is also used by the
get_cross_kernel_cc().

That said it's still not very robust to determine a compiler based on
a variable or inherited class but at least it fixes the issue for now.

(From OE-Core rev: 5e3c6a6384fcdc4a2269172012caae14e5f327ca)

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Marco Felsch 2024-12-11 19:03:47 +01:00 committed by Richard Purdie
parent f391bf2c08
commit b8e99c75a1

View File

@ -358,7 +358,7 @@ python set_icecc_env() {
symlink_path = os.path.join(ICE_PATH, "symlinks")
bb.utils.mkdirhier(symlink_path)
compilers = []
if d.getVar('KERNEL_CC'):
if icecc_is_kernel(bb, d):
compilers.append(get_cross_kernel_cc(bb,d))
else:
host_prefix = d.getVar('HOST_PREFIX')