[PATCH 2/6] make: use wc -c instead of stat -c%s to get file sizes

Dirk Hörner dirker at gmail.com
Tue Jun 5 17:15:15 EDT 2012


Hi Jean-Christophe,

On Tue, Jun 5, 2012 at 4:49 AM, Jean-Christophe PLAGNIOL-VILLARD
<plagnioj at jcrosoft.com> wrote:
>
> HI,
>
>        I don't like this to continue to duplicate code

I agree. Would you rather like a function in common/Kbuild.include and
then $(call) it in appropriate places?

In any case, I guess the code unification should be done in a separate
commit, either before or after my patch.

Ciao,
Dirk

>
> Best Regards,
> J.
> On 22:40 Mon 04 Jun     , Dirk Hörner wrote:
> > On OS X, stat does not know about %s. Solaris does not have stat. The
> > drawback to this wc -c solution is that wc reads all the bytes, but we
> > are
> > only dealing with small files here, so that not be much of a problem.
> >
> > Signed-off-by: Dirk Hörner <dirker at gmail.com>
> > ---
> >  Makefile             |    2 +-
> >  common/Makefile      |    2 +-
> >  scripts/Makefile.lib |    2 +-
> >  3 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/Makefile b/Makefile
> > index bcaae0a..3ac8788 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -536,7 +536,7 @@ quiet_cmd_barebox_version = GEN     .version
> >  # Check size of a file
> >  quiet_cmd_check_file_size = CHKSIZE $@
> >        cmd_check_file_size = set -e;                                  \
> > -     size=`stat -c%s $@`;                                            \
> > +     size=`wc -c < $@`;                                              \
> >       max_size=`printf "%d" $2`;                                      \
> >       if [ $$size -gt $$max_size ] ;                                  \
> >       then                                                            \
> > diff --git a/common/Makefile b/common/Makefile
> > index a58aef9..9c14d7b 100644
> > --- a/common/Makefile
> > +++ b/common/Makefile
> > @@ -77,7 +77,7 @@ barebox_default_env.lzo: barebox_default_env
> >
> >  include/generated/barebox_default_env.h:
> > barebox_default_env$(barebox_default_env_comp)
> >       $(Q)cat $< | $(objtree)/scripts/bin2c default_environment > $@
> > -     $(Q)echo "const int default_environment_uncompress_size=`stat -c%s
> > barebox_default_env`;" >> $@
> > +     $(Q)echo "const int default_environment_uncompress_size=`wc -c <
> > barebox_default_env`;" >> $@
> >
> >  CLEAN_FILES += include/generated/barebox_default_env.h
> > barebox_default_env
> >  CLEAN_FILES += barebox_default_env.gz barebox_default_env.bz2
> > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> > index b842c48..9b02b1b 100644
> > --- a/scripts/Makefile.lib
> > +++ b/scripts/Makefile.lib
> > @@ -171,7 +171,7 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f
> > -9 > $@) || \
> >  size_append = printf $(shell                                         \
> >  dec_size=0;                                                          \
> >  for F in $1; do
> >      \
> > -     fsize=$$(stat -c "%s" $$F);                                     \
> > +     fsize=$$(wc -c < $$F);                                          \
> >       dec_size=$$(expr $$dec_size + $$fsize);                         \
> >  done;
> >      \
> >  printf "%08x\n" $$dec_size |                                         \
> > --
> > 1.7.10.3
> >
> >
> > _______________________________________________
> > barebox mailing list
> > barebox at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/barebox



More information about the barebox mailing list