[PATCH v3 01/16] Makefile: detect HOST_ARCH properly when CROSS_COMPILE is multi-word
Jerome Forissier
jerome.forissier at linaro.org
Tue Sep 3 10:37:58 CEST 2024
When CROSS_COMPILE contains multiple words, HOST_ARCH is not properly
detected and the sandbox build fail. It typically happens when using
ccache. For example:
$ make sandbox_defconfig
$ make CROSS_COMPILE="ccache x86_64-linux-gnu-" \
CC="ccache x86_64-linux-gnu-gcc"
[...]
In file included from boot/bootmeth_efi.c:16:
include/efi_default_filename.h:33:2: error: #error Unsupported UEFI architecture
33 | #error Unsupported UEFI architecture
| ^~~~~
A similar error occurs when the build is done via buildman and
~/.buildman contains:
[toolchain-wrapper]
wrapper = ccache
Fix the issue by considering only the last word in $(CROSS_COMPILE).
Signed-off-by: Jerome Forissier <jerome.forissier at linaro.org>
Reviewed-by: Peter Robinson <pbrobinson at gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
Reviewed-by: Peter Robinson <pbrobinson at gmail.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index f90e48f58a5..dc7bdd79420 100644
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,7 @@ include include/host_arch.h
ifeq ("", "$(CROSS_COMPILE)")
MK_ARCH="${shell uname -m}"
else
- MK_ARCH="${shell echo $(CROSS_COMPILE) | sed -n 's/^[[:space:]]*\([^\/]*\/\)*\([^-]*\)-[^[:space:]]*/\2/p'}"
+ MK_ARCH="${shell echo ${lastword $(CROSS_COMPILE)} | sed -n 's/^[[:space:]]*\([^\/]*\/\)*\([^-]*\)-[^[:space:]]*/\2/p'}"
endif
unexport HOST_ARCH
ifeq ("x86_64", $(MK_ARCH))
--
2.40.1
More information about the U-Boot
mailing list