[U-Boot] [PATCH] MAKEALL: Fix return value
Mike Frysinger
vapier at gentoo.org
Mon Dec 7 00:20:13 CET 2009
On Sunday 06 December 2009 03:44:06 Peter Tyser wrote:
> On Sun, 2009-12-06 at 02:45 -0500, Mike Frysinger wrote:
> > On Sunday 06 December 2009 02:09:34 Peter Tyser wrote:
> > > ${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \
> > >
> > > | tee ${LOG_DIR}/$target.ERR
> >
> > you could rewrite this to keep POSIX compliance:
> > # need to maintain exit value ourselves as pipes eat it
> > fail=${LOG_DIR}/$target.failed
> > rm -f ${fail}
> > (${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \
> >
> > || touch ${fail}) | tee ${LOG_DIR}/$target.ERR
> >
> > [ -e ${fail} ] && : $(( RC += 1 ))
> > rm -f ${fail}
>
> Ahh, clever. It doesn't really matter which way to me. PIPESTATUS
> seems more straightforward, but maintaining POSIX compliance would be
> nice too.
i agree with both points
> > > + # Return how many board compiles failed, assuming 'make' returns 2
> > > + # for builds which failed
> > > + exit $(((RC + 1) / 2))
> >
> > the problem here is that exit statuses have a range of 256 values. so as
> > soon as more than 255 boards fail, this wont work. maybe i'm being
> > overly paranoid though ?
>
> Good point. I can change RC into a bitwise OR of the 'make' return
> values instead of a sum. I think 98% of the time people just want to
> know if any board compile failed, not specifically how many boards
> failed.
right, so maybe something like:
: $(( RC = (RC + 1) / 2 ))
# exit values top out at 255
exit $(( RC > 255 ? 255 : RC ))
not that ive ever looked at the exit status as anything meaningful ... i
always review the ERR files to make sure they're all 0 bytes.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20091206/fd0076f7/attachment.pgp
More information about the U-Boot
mailing list