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

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Thu Sep 3 07:48:05 UTC 2015


On 2015-09-01 11:58, Erik Joelsson wrote:
> 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.

I didn't think it was possible due to the pecularities of the Windows 
call, but it turned out I was wrong. :) Thanks for making me try harder 
converting this into a sane API. :)

New webrev:
http://cr.openjdk.java.net/~ihse/JDK-8062618-failure-summary/webrev.02

/Magnus

>
> /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