Messages in this thread | | | Date | Mon, 21 Dec 2009 13:23:06 +0100 | From | Michal Marek <> | Subject | Re: [PATCH] kbuild: correct size calculation of bzImgae / fix x86 boot |
| |
Andreas Schwab napsal(a): > Does dash's printf support %b? Then this should work.
Good idea. %b is specified by posix, so there is hope :). Does Andreas' patch work for others as well? I'd like to fix this upstream ASAP, OTOH right now it's broken "only" for dash users, so let's not rush and make it even worse.
Thanks, Michal > > Andreas. > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index cd815ac..340813d 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -213,14 +213,16 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) || \ > > # Bzip2 and LZMA do not include size in file... so we have to fake that; > # append the size as a 32-bit littleendian number as gzip does. > -size_append = printf $(shell \ > +size_append = printf %b $$( \ > dec_size=0; \ > for F in $1; do \ > fsize=$$(stat -c "%s" $$F); \ > dec_size=$$(expr $$dec_size + $$fsize); \ > done; \ > -printf "%08x" $$dec_size | \ > - sed 's/\(..\)\(..\)\(..\)\(..\)/\\\\x\4\\\\x\3\\\\x\2\\\\x\1/g' \ > +for i in 1 2 3 4; do \ > + printf '\\%04o' $$(expr $$dec_size % 256); \ > + dec_size=$$(expr $$dec_size / 256); \ > +done \ > )
| |