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


Reply via email to