
Hi Jerome,
On Wed, 11 Sept 2024 at 03:58, Jerome Forissier jerome.forissier@linaro.org wrote:
When building for sandbox, self.cross is empty.
In MakeEnvironment(), CROSS_COMPILE is defined to be self.cross (with or without a full path), optionally prefixed by the toolchain wrapper defined in ~/.buildman. This is fine when self.cross is not empty, but it doesn't make sense when it is:
- Either there is no wrapper and we end up with an empty CROSS_COMPILE
which is the same as not defining it (the host compiler will be used),
- Or there is a wrapper and CROSS_COMPILE will contain only the wrapper
which obviously is not a valid compiler, hence an error.
Test case:
$ sudo apt install ccache $ grep -q toolchain-wrapper ~/.buildman || \ printf "[toolchain-wrapper]\nwrapper = ccache\n" >>~/.buildman $ make mrproper $ ./tools/buildman/buildman sandbox_noinst $ ./tools/buildman/buildman sandbox_noinst Building current source for 1 boards (1 thread, 24 jobs per thread) sandbox: + sandbox_noinst +arch/sandbox/lib/reloc_sandbox_efi.c:10:15: error: operator '==' has no left operand
- 10 | #if HOST_ARCH == HOST_ARCH_X86_64
| ^~
[...]
The GetEnvArgs function is modified too, since the VAR_CROSS_COMPILE case has the same issue.
In tools/buildman/test.py, testGetEnvArgs is extended and testMakeEnvironment is added. They check the 'arm' and 'sandbox' toolchains, with and without a wrapper.
Signed-off-by: Jerome Forissier jerome.forissier@linaro.org
tools/buildman/test.py | 46 +++++++++++++++++++++++++++++++++++++ tools/buildman/toolchain.py | 6 +++-- 2 files changed, 50 insertions(+), 2 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org
I did not expect to still get that same error now, but OK.