[U-Boot] "MAKEALL: Add summary information" breaks MAKEALL return code

Dear Peter,
your commit 40a28f0885 (MAKEALL: Add summary information) breaks MAKEALL because we now don't get any useful return code any more. You may argument that we didn't get one before, which is correct for building multiple boards in one call. But when running something like "MAKEALL <board>" we did get a return code, so wee could use this for example with "git bisect run".
One possible fix could look like this:
diff --git a/MAKEALL b/MAKEALL index d63c5c2..0cafed8 100755 --- a/MAKEALL +++ b/MAKEALL @@ -952,13 +952,16 @@ build_target() { #-----------------------------------------------------------------------
print_stats() { + rc=0 echo "" echo "--------------------- SUMMARY ----------------------------" echo "Boards compiled: ${TOTAL_CNT}" if [ ${ERR_CNT} -gt 0 ] ; then + rc=1 echo "Boards with warnings or errors: ${ERR_CNT} (${ERR_LIST} )" fi echo "----------------------------------------------------------" + exit $rc }
#-----------------------------------------------------------------------
But I don't really like this approach, as it still changes behaviour: now even warnings get accounted as errors. What do you think?
Best regards,
Wolfgang Denk

Hi Wolfgang,
your commit 40a28f0885 (MAKEALL: Add summary information) breaks MAKEALL because we now don't get any useful return code any more. You may argument that we didn't get one before, which is correct for building multiple boards in one call. But when running something like "MAKEALL <board>" we did get a return code, so wee could use this for example with "git bisect run".
I'm not seeing a useful return code before the change:
ptyser@petert u-boot $ git reset --hard 40a28f0885~1 HEAD is now at 71ce9bd galaxy5200: enable version environment variable ptyser@petert u-boot $ echo "asdf" >> common/cmd_nvedit.c ptyser@petert u-boot $ ./MAKEALL MVBLUE; echo $? Configuring for MVBLUE board... cmd_nvedit.c:643: error: expected '=', ',', ';', 'asm' or '__attribute__' at end of input make[1]: *** [cmd_nvedit.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [common/libcommon.a] Error 2 powerpc-linux-size: './u-boot': No such file 0
ptyser@petert u-boot $ git checkout master M common/cmd_nvedit.c Already on "master" Your branch is behind 'origin/master' by 334 commits, and can be fast-forwarded. ptyser@petert u-boot $ echo "asdf" >> common/cmd_nvedit.c ptyser@petert u-boot $ ./MAKEALL MVBLUE; echo $? Configuring for MVBLUE board... cmd_nvedit.c:644: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'asdf' make[1]: *** [cmd_nvedit.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [common/libcommon.a] Error 2 powerpc-linux-size: './u-boot': No such file 0
Do you have an example of what breaks?
It seems like the behavior should be the same before/after the change. In both cases the last command is "tee -a ${LOG_DIR}/$target.MAKELOG", which always returns 0.
I agree that it would be nice to have a valid return code either way though:)
Peter
One possible fix could look like this:
diff --git a/MAKEALL b/MAKEALL index d63c5c2..0cafed8 100755 --- a/MAKEALL +++ b/MAKEALL @@ -952,13 +952,16 @@ build_target() { #-----------------------------------------------------------------------
print_stats() {
- rc=0 echo "" echo "--------------------- SUMMARY ----------------------------" echo "Boards compiled: ${TOTAL_CNT}" if [ ${ERR_CNT} -gt 0 ] ; then
echo "Boards with warnings or errors: ${ERR_CNT} (${ERR_LIST} )" fi echo "----------------------------------------------------------"rc=1
- exit $rc
}
#-----------------------------------------------------------------------
But I don't really like this approach, as it still changes behaviour: now even warnings get accounted as errors. What do you think?
Best regards,
Wolfgang Denk
participants (2)
-
Peter Tyser
-
Wolfgang Denk