From 300c662aa7ea22a53567e16da1a873c733322bb9 Mon Sep 17 00:00:00 2001 From: Rasmus Villemoes Date: Thu, 22 Apr 2021 09:44:18 +0200 Subject: Makefile: fix generation of defaultenv.h from empty initial file When CONFIG_USE_DEFAULT_ENV_FILE=y and the file CONFIG_DEFAULT_ENV_FILE is empty (or at least doesn't contain any non-comment, non-empty lines), we end up feeding nothing into xxd, which in turn then outputs nothing. Then blindly appending ", 0x00" means that we end up trying to compile (roughly) const char defaultenv[] = { , 0x00 } which is of course broken. To fix that, change the frobbing of the text file so that we always end up printing an extra empty line (which gets turned into that extra nul byte we need) - that corresponds better to the binary format consisting of a series of key=val nul terminated strings, terminated by an empty string. (cherry-picked from https://patchwork.ozlabs.org/project/uboot/patch/20210422074418.1573153-1-rasmus.villemoes@prevas.dk/) Reported-by: Oleksandr Suvorov Signed-off-by: Rasmus Villemoes Reviewed-by: Oleksandr Suvorov --- Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 98b0046300..7c3c78dfc5 100644 --- a/Makefile +++ b/Makefile @@ -1881,11 +1881,10 @@ define filechk_timestamp.h endef define filechk_defaultenv.h - (grep -v '^#' | \ - grep -v '^$$' | \ + ( { grep -v '^#' | grep -v '^$$' || true ; echo '' ; } | \ tr '\n' '\0' | \ sed -e 's/\\\x0\s*//g' | \ - xxd -i ; echo ", 0x00" ; ) + xxd -i ; ) endef define filechk_dt.h -- cgit v1.2.3