[PATCH v2] Makefile: use shell to calculate map_size

Dragan Simic dsimic at manjaro.org
Sun Mar 10 11:12:03 CET 2024


Hello Leon,

On 2024-03-04 21:44, Dragan Simic wrote:
> On 2024-03-04 21:38, Leon M. Busch-George wrote:
>> From: "Leon M. Busch-George" <leon at 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 at georgemail.eu>

The v2 is looking good to me.  I also did some testing of the awk code
by hand, outside of the actual Makefile, and it worked as expected.

See also one small nitpick below, and please feel free to include:

Reviewed-by: Dragan Simic <dsimic at manjaro.org>

>> ---
>>  Makefile | 13 +++++++++----
>>  1 file changed, 9 insertions(+), 4 deletions(-)
>> 
>> diff --git a/Makefile b/Makefile
>> index a2bc9d5903..e8e794368e 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}') ; \

Perhaps a couple of spaces could be added around "print $$1" in the
line above, to nicely round off the code cleanups.

>>  	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; [ -n "$$end" ] && 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 ; \


More information about the U-Boot mailing list