[U-Boot] [U-Boot, v2] Enable expression support for CONFIG_BOARD_SIZE_LIMIT
Tom Rini
trini at konsulko.com
Fri Dec 14 19:16:42 UTC 2018
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 <wd at denx.de>
> Tested-by: Fabio Estevam <festevam at gmail.com>
>
> Cc: Fabio Estevam <festevam at gmail.com>
> Cc: Stefano Babic <sbabic at denx.de>
> Cc: Vanessa Maegima <vanessa.maegima at nxp.com>
> Cc: Otavio Salvador <otavio at ossystems.com.br>
> Cc: John Weber <john.weber at technexion.com>
> Cc: Stefan Roese <sr at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181214/cafdb540/attachment.sig>
More information about the U-Boot
mailing list