[PATCH] Makefile: fix host CPP pollution in cmd_gen_envp
Levi Shafter
levi.shafter at elder-tomes.com
Sat Apr 18 00:45:09 CEST 2026
Commit 2956a84 ("Makefile: don't use CFLAGS for environment text file")
switched cmd_gen_envp to use $(cpp_flags) so that KCPPFLAGS would be
honored when preprocessing the environment text file. However,
cpp_flags also includes $(PLATFORM_CPPFLAGS), which carries
architecture-specific flags such as -march=armv8-a+crc set by
arch/arm/Makefile for CONFIG_ARM64_CRC32=y targets. These flags are
appropriate for cross-compiled object files but cause the host CPP
invocation to fail on x86 build machines:
cc1: error: bad value ('armv8-a+crc') for '-march=' switch
KBUILD_CPPFLAGS already accumulates the user-supplied KCPPFLAGS via
"KBUILD_CPPFLAGS += $(KCPPFLAGS)", providing the behaviour 2956a84
intended without pulling in target architecture flags. Use it directly.
Fixes: 2956a84 ("Makefile: don't use CFLAGS for environment text file")
Reported-by: Levi Shafter <levi.shafter at elder-tomes.com>
Signed-off-by: Levi Shafter <levi.shafter at elder-tomes.com>
---
Sponsor: 21SoftWare LLC
Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index dfc95d314dd..e2b8e6a1915 100644
--- a/Makefile
+++ b/Makefile
@@ -2147,7 +2147,8 @@ ENV_FILE := $(if
$(ENV_SOURCE_FILE),$(ENV_FILE_CFG),$(wildcard $(ENV_FILE_BOARD)
quiet_cmd_gen_envp = ENVP $@
cmd_gen_envp = \
if [ -s "$(ENV_FILE)" ]; then \
- $(CPP) -P $(cpp_flags) -x assembler-with-cpp -undef \
+ $(CPP) -P $(KBUILD_CPPFLAGS) $(UBOOTINCLUDE) \
+ -x assembler-with-cpp -undef \
-D__ASSEMBLY__ \
-D__UBOOT_CONFIG__ \
-DDEFAULT_DEVICE_TREE=$(subst ",,$(CONFIG_DEFAULT_DEVICE_TREE)) \
More information about the U-Boot
mailing list