From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Suvorov Date: Thu, 22 Apr 2021 12:26:56 +0300 Subject: [PATCH] Makefile: fix generation of defaultenv.h from empty initial file In-Reply-To: <20210422074418.1573153-1-rasmus.villemoes@prevas.dk> References: <20210422074418.1573153-1-rasmus.villemoes@prevas.dk> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Rasmus, Thanks for the patch, I've tested it. On Thu, Apr 22, 2021 at 10:44 AM Rasmus Villemoes wrote: > > 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 > 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 3fc9777b0b..b7af2b936d 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 > -- > 2.29.2 > -- Best regards Oleksandr Suvorov Toradex AG Ebenaustrasse 10 | 6048 Horw | Switzerland | T: +41 41 500 48 00