fix problems with new image size calculations

The build servers have GNU coreutils 5.93, where stat does not output
a newline.  Ubuntu hardy has GNU coreutils 6.10, where it does.
Lacking a newline messes up the summing of the sizes.  Fix
get-file-size to remove the newline if present, and make the total
calculation in assert-max-file-size more robust.

Also, if the image was too big, it was not actually making the build
fail (because /bin/false was not the last thing called).  Fix that so
it does.
This commit is contained in:
Doug Zongker 2009-07-08 12:09:04 -07:00
parent 8cebf1ff78
commit 742fa575d0
2 changed files with 4 additions and 5 deletions

View File

@ -10,7 +10,7 @@ $(combo_target)AR := $(AR)
ifeq ($(combo_target),HOST_)
# $(1): The file to check
define get-file-size
stat --format "%s" "$(1)"
stat --format "%s" "$(1)" | tr -d '\n'
endef
endif

View File

@ -1558,8 +1558,8 @@ endef
# next whole flash block size.
define assert-max-file-size
$(if $(2), \
size=$$(for i in $(1); do $(call get-file-size,$$i); done); \
total=$$(( $$( echo "$$size" | tr '\n' + ; echo 0 ) )); \
size=$$(for i in $(1); do $(call get-file-size,$$i); echo +; done; echo 0); \
total=$$(( $$( echo "$$size" ) )); \
printname=$$(echo -n "$(1)" | tr " " +); \
echo "$$printname total size is $$total"; \
img_blocksize=$(call image-size-from-data-size,$(BOARD_FLASH_BLOCK_SIZE)); \
@ -1570,8 +1570,7 @@ $(if $(2), \
if [ "$$total" -gt "$$maxsize" ]; then \
echo "error: $$printname too large ($$total > [$(2) - $$reserve])"; \
false; \
fi; \
if [ "$$total" -gt $$((maxsize - 32768)) ]; then \
elif [ "$$total" -gt $$((maxsize - 32768)) ]; then \
echo "WARNING: $$printname approaching size limit ($$total now; limit $$maxsize)"; \
fi \
, \