[PATCH] Makefile: fix generation of defaultenv.h from empty initial file

Oleksandr Suvorov oleksandr.suvorov at toradex.com
Thu Apr 22 11:26:56 CEST 2021


Hi Rasmus,

Thanks for the patch, I've tested it.

On Thu, Apr 22, 2021 at 10:44 AM Rasmus Villemoes
<rasmus.villemoes at prevas.dk> 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 <oleksandr.suvorov at toradex.com>
> Signed-off-by: Rasmus Villemoes <rasmus.villemoes at prevas.dk>

Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov at toradex.com>

> ---
>  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


More information about the U-Boot mailing list