Message ID | 20240305164707.23144-1-leon@georgemail.de |
---|---|
State | Superseded |
Delegated to: | Tom Rini |
Headers | show |
Series | [v3] Makefile: use shell to calculate map_size | expand |
On 2024-03-05 18:15, Dragan Simic wrote: > On 2024-03-05 17:46, Leon M. Busch-George wrote: >> From: "Leon M. Busch-George" <leon@georgemail.eu> >> >> The error message "bc: command not found" is easily missed since the >> build continues. >> bc is not a part of coreutils or base-devel. POSIX sh can also do the >> calculation. >> >> Signed-off-by: Leon M. Busch-George <leon@georgemail.eu> Sorry, I totally missed the v3. It's still looking good to me, and my Reviewed-by tag still applies, together with the small nitpick. >> --- >> Makefile | 13 +++++++++---- >> 1 file changed, 9 insertions(+), 4 deletions(-) >> >> diff --git a/Makefile b/Makefile >> index a2bc9d5903..0aef07ef3b 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -1275,10 +1275,15 @@ OBJCOPYFLAGS_u-boot-nodtb.bin := -O binary \ >> binary_size_check: u-boot-nodtb.bin FORCE >> @file_size=$(shell wc -c u-boot-nodtb.bin | awk '{print $$1}') ; \ >> map_size=$(shell cat u-boot.map | \ >> - awk '/_image_copy_start/ {start = $$1} /_image_binary_end/ {end = >> $$1} END {if (start != "" && end != "") print "ibase=16; " >> toupper(end) " - " toupper(start)}' \ >> - | sed 's/0X//g' \ >> - | bc); \ >> - if [ "" != "$$map_size" ]; then \ >> + awk ' \ >> + /_image_copy_start/ { start = $$1 } \ >> + /_image_binary_end/ { end = $$1 } \ >> + END { \ >> + if (start != "" && end != "") \ >> + print end " " start; \ >> + }' \ >> + | sh -c 'read end start && echo $$((end - start))'); \ >> + if [ -n "$$map_size" ]; then \ >> if test $$map_size -ne $$file_size; then \ >> echo "u-boot.map shows a binary size of $$map_size" >&2 ; \ >> echo " but u-boot-nodtb.bin shows $$file_size" >&2 ; \
diff --git a/Makefile b/Makefile index a2bc9d5903..0aef07ef3b 100644 --- a/Makefile +++ b/Makefile @@ -1275,10 +1275,15 @@ OBJCOPYFLAGS_u-boot-nodtb.bin := -O binary \ binary_size_check: u-boot-nodtb.bin FORCE @file_size=$(shell wc -c u-boot-nodtb.bin | awk '{print $$1}') ; \ map_size=$(shell cat u-boot.map | \ - awk '/_image_copy_start/ {start = $$1} /_image_binary_end/ {end = $$1} END {if (start != "" && end != "") print "ibase=16; " toupper(end) " - " toupper(start)}' \ - | sed 's/0X//g' \ - | bc); \ - if [ "" != "$$map_size" ]; then \ + awk ' \ + /_image_copy_start/ { start = $$1 } \ + /_image_binary_end/ { end = $$1 } \ + END { \ + if (start != "" && end != "") \ + print end " " start; \ + }' \ + | sh -c 'read end start && echo $$((end - start))'); \ + if [ -n "$$map_size" ]; then \ if test $$map_size -ne $$file_size; then \ echo "u-boot.map shows a binary size of $$map_size" >&2 ; \ echo " but u-boot-nodtb.bin shows $$file_size" >&2 ; \