[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