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