From d78d4690bcd1fa1df82e30ed1dc8aa8d6a9431d6 Mon Sep 17 00:00:00 2001 From: Douglas Raillard Date: Mon, 4 Apr 2022 18:01:54 +0100 Subject: [PATCH] lisa._kmod: Use HOSTCC == CC FEATURE When possible, use HOSTCC == CC to avoid having to install two different compilers. --- lisa/_kmod.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/lisa/_kmod.py b/lisa/_kmod.py index a4fc9ecf3..207f6da28 100644 --- a/lisa/_kmod.py +++ b/lisa/_kmod.py @@ -245,24 +245,23 @@ def _make_chroot(make_vars, bind_paths=None, alpine_version='3.15.0', overlay_ba 'bison', 'flex', 'python3', - - # TODO: As of october 2021 for some reason, the kernel still needs GCC - # to build some tools even when compiling with clang - 'gcc', ] make_vars = make_vars or {} - try: - cc = make_vars['CC'] - except KeyError: - cc = 'gcc' + def add_compiler(cc): + if cc == 'clang': + packages.extend([ + 'lld', + 'llvm', + ]) + packages.append(cc) + + cc = make_vars.get('CC', 'gcc') + add_compiler(cc) - if cc == 'clang': - packages.extend([ - 'lld', - 'llvm', - ]) - packages.append(cc) + hostcc = make_vars.get('HOSTCC', cc) + if hostcc != cc: + add_compiler(hostcc) devlib_arch = make_vars.get('ARCH', LISA_HOST_ABI) @@ -891,6 +890,10 @@ class KernelTree(Loggable, SerializeViaConstructor): # Alpine chroot, so there is no need for a cross compiler make_vars.pop('CROSS_COMPILE', None) + # Avoid requiring another compiler to build the tools used to build + # the kernel. + make_vars['HOSTCC'] = cc + return (make_vars, cc) @classmethod -- GitLab