On Fri, Dec 07, 2018 at 08:27:51PM +0100, Wolfgang Denk wrote:

> So far, the use of CONFIG_BOARD_SIZE_LIMIT would only work with
> plain numeric constants.  Extend it to allow for expressions, so one
> can for example use
> 
>       #define CONFIG_BOARD_SIZE_LIMIT (768 << 10)
> 
> in the board configuration.
> 
> Signed-off-by: Wolfgang Denk <w...@denx.de>
> Tested-by: Fabio Estevam <feste...@gmail.com>
> 
> Cc: Fabio Estevam <feste...@gmail.com>
> Cc: Stefano Babic <sba...@denx.de>
> Cc: Vanessa Maegima <vanessa.maeg...@nxp.com>
> Cc: Otavio Salvador <ota...@ossystems.com.br>
> Cc: John Weber <john.we...@technexion.com>
> Cc: Stefan Roese <s...@denx.de>
> ---
> v2: replace bashism for evaluating expressions in CONFIG_BOARD_SIZE_LIMIT
>     by another call to awk.
> 
> Note 1: As gawk lacks an eval function and we don't want to rely on
>  bash being used as shell, we use another call to awk to evaluate the
>  expression. This has the disadvantage that we cannot use expressions
>  like "<<" which awk does not understand. OK, one could replace awk
>  by something better...
> 
> Note 2: This patch focusses on enabling this new feature.  It does
>  not addres another issue that should be solved in a later
>  commit: the duplication of the same code in Makefile and
>  arch/arm/mach-imx/Makefile
> 
> ---
>  Makefile                   | 17 ++++++++---------
>  arch/arm/mach-imx/Makefile | 17 ++++++++---------
>  2 files changed, 16 insertions(+), 18 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 0d11ff9797..87eb0fd2b1 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -774,15 +774,14 @@ LDPPFLAGS += \
>  
>  ifneq ($(CONFIG_BOARD_SIZE_LIMIT),)
>  BOARD_SIZE_CHECK = \
> -     @actual=`wc -c $@ | awk '{print $$1}'`; \
> -     limit=`printf "%d" $(CONFIG_BOARD_SIZE_LIMIT)`; \
> -     if test $$actual -gt $$limit; then \
> -             echo "$@ exceeds file size limit:" >&2 ; \
> -             echo "  limit:  $$limit bytes" >&2 ; \
> -             echo "  actual: $$actual bytes" >&2 ; \
> -             echo "  excess: $$((actual - limit)) bytes" >&2; \
> -             exit 1; \
> -     fi
> +     @(awk "END{print $$(echo $(CONFIG_BOARD_SIZE_LIMIT))}" /dev/null; wc -c 
> $@ ) | \

So this fails with awk being provided by mawk, not gawk:
$ mawk "END{print $(echo 0xE0000)}" /dev/null;
0
$ gawk "END{print $(echo 0xE0000)}" /dev/null;
917504

And then things fail as mawk doesn't like hex.

Now, at the end of the day, I'm now not sure I agree with this patch in
concept.  When CONFIG_BOARD_SIZE_LIMIT is moved to Kconfig it will be
taking I would assume a hex input and so we don't have to worry about <<
at all.

-- 
Tom

Attachment: signature.asc
Description: PGP signature

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to