RFR: JDK-8062618 Create a build failure summary at end of build log

Erik Joelsson erik.joelsson at oracle.com
Tue Sep 1 09:58:16 UTC 2015


Looks ok to me.

Without actually putting too much thought into it so I might be wrong, 
but shouldn't it be possible to combine LogFailures and HandleFailure 
into one call? The calling convention for using them now is quite 
particular.

/Erik

On 2015-08-31 14:59, Magnus Ihse Bursie wrote:
> When building with multiple parallel jobs, it can be hard to track 
> down the actual error causing the build to fail.
>
> This patch addresses this in two parts. Firstly, it tries to locate a 
> sequence of failing make targets, where the first is the initial 
> failing target, which is usually very specific, and repeats these at 
> the end of the build. (This will work only on GNU Make 4)
>
> Secondly, if the failure occured during compilation or linking, the 
> actual output of the failing compilation/link command is repeated. 
> Since the most likely build failure a common developer will encounter 
> are compilation or link failures, this will hopefully help to make 
> most build errors quick to resolve. (This will unfortunately not work 
> for hotspot code until the new Hotspot build system is integrated.)
>
> An example on how this looks:
> ----8<-----
> make4[2]: *** Waiting for unfinished jobs....
>
> ERROR: Build failed for target 'default' in configuration 'make4' 
> (exit code 2)
> === Output from failing command(s) repeated here ===
> * For target BUILD_LIBINSTRUMENT_Utilities.c:
> /localhome/hg/jdk9-dev-DOH/jdk/src/java.instrument/share/native/libinstrument/Utilities.c:37:1: 
> error: unknown type name ‘intt’
>  intt apa2;
>  ^
> === End of repeated output ===
> === Make failure sequence repeated here ===
> Lib-java.instrument.gmk:59: recipe for target 
> '/localhome/hg/jdk9-dev-DOH/build/make4/support/native/java.instrument/libinstrument/Utilities.o' 
> failed
> make/Main.gmk:171: recipe for target 'java.instrument-libs' failed
> === End of repeated output ===
> Hint: Try searching the build log for the name of the first failed 
> target.
> Hint: If caused by a warning, try configure --disable-warnings-as-errors.
> ----8<-----
>
> In case no failed targets were found, at least some assistance is 
> printed:
> ----8<-----
> make[2]: *** Waiting for unfinished jobs....
>
> ERROR: Build failed for target 'default' in configuration 
> 'linux-x86_64-normal-server-release' (exit code 2)
> No indication of failed target found.
> Hint: Try searching the build log for '] Error'.
> Hint: If caused by a warning, try configure --disable-warnings-as-errors.
> ----8<-----
>
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8062618
> WebRev: 
> http://cr.openjdk.java.net/~ihse/JDK-8062618-failure-summary/webrev.01
>
> /Magnus
>




More information about the build-dev mailing list