summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>2021-04-22 09:44:18 +0200
committerTom Rini <trini@konsulko.com>2021-04-27 08:05:30 -0400
commit7ac7038ab36feff54e882422de0f3127db094565 (patch)
tree3b24b2eb2f4676e921398b28b133f2d90cd1e1e7
parentdae9aeda45277de24161d0f68f1a9468758f166e (diff)
downloadu-boot-7ac7038ab36feff54e882422de0f3127db094565.tar.gz
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. Reported-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
-rw-r--r--Makefile5
1 files changed, 2 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index a0ab464ea9..404977efa5 100644
--- a/Makefile
+++ b/Makefile
@@ -1854,11 +1854,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