diff mbox series

[v3] Makefile: use shell to calculate map_size

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

Commit Message

Leon M. Busch-George March 5, 2024, 4:46 p.m. UTC
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>
---
 Makefile | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

Comments

Dragan Simic March 10, 2024, 10:33 a.m. UTC | #1
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 mbox series

Patch

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