[PATCH v3 1/1] Makefile: pass -undef option to cmd_gen_envp

Sébastien Szymanski sebastien.szymanski at armadeus.com
Fri Feb 23 12:42:06 CET 2024


Without the '-undef' option, the 'linux' string in .env files is
replaced with the string '1 '.
For example, in the board/armadeus/opos6uldev/opos6uldev.env file,

kernelimg=opos6ul-linux.bin

becomes

kernelimg=opos6ul-1 .bin

in the include/generated/env.in file.

That's because 'linux' is a System-specific Predefined Macros. [1]

Pass the '-undef' option to fix this issue.

[1] https://gcc.gnu.org/onlinedocs/gcc-13.2.0/cpp/System-specific-Predefined-Macros.html

Signed-off-by: Sébastien Szymanski <sebastien.szymanski at armadeus.com>
---

Changes for v3:
 - use -undef instead of ansi. With -undef, there is no need to modify
   iot2050.env and smegw01.env files anymore.

Changes for v2:
 - explain the change of iot2050.env and smegw01.env in the commit log

 Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 3b5db90df6f9..63b006e0e0f1 100644
--- a/Makefile
+++ b/Makefile
@@ -1804,7 +1804,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 $(CFLAGS) -x assembler-with-cpp -D__ASSEMBLY__ \
+		$(CPP) -P $(CFLAGS) -x assembler-with-cpp -undef \
+			-D__ASSEMBLY__ \
 			-D__UBOOT_CONFIG__ \
 			-I . -I include -I $(srctree)/include \
 			-include linux/kconfig.h -include include/config.h \
-- 
2.43.0



More information about the U-Boot mailing list