RFR: JDK-8062618 Create a build failure summary at end of build log
Erik Joelsson
erik.joelsson at oracle.com
Thu Sep 3 07:55:56 UTC 2015
That looks better, thanks!
/Erik
On 2015-09-03 09:48, Magnus Ihse Bursie wrote:
> 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