RFR: JDK-8204664 PrepareFailureLogs should be done after sequential make targets
Erik Joelsson
erik.joelsson at oracle.com
Mon Jun 11 19:07:56 UTC 2018
On 2018-06-11 11:09, Magnus Ihse Bursie wrote:
>
>
> On 2018-06-11 17:42, Erik Joelsson wrote:
>> Hello,
>>
>> Looks ok. Perhaps this warrants a comment somewhere about the failure
>> logs only working in parallel targets?
>
> Do you mean a comment in the code, or in the build documentation?
>
I'm thinking in the code, to remind us in the future when we edit in
these areas.
/Erik
> /Magnus
>
>>
>> /Erik
>>
>>
>> On 2018-06-11 01:50, Magnus Ihse Bursie wrote:
>>> When running a compound make line such as "make reconfigure clean
>>> jdk-image test-image", make will first single out the "sequential"
>>> targets reconfigure and clean, and execute them single-threaded, in
>>> sequence, and then it will build the remaining targets in parallel.
>>> However, the macro PrepareFailureLogs was called before this
>>> sequential calling, meaning that the directories created by it will
>>> be destroyed moments after by the clean target. The result is that
>>> if there is a compile error, the build will exit with something
>>> along these lines:
>>>
>>> /bin/cp: cannot create regular file
>>> `/export/users/dh198349/jdk-dev2/build/linux-x64-debug/make-support/failure-logs/hotspot_variant-server_libjvm_objs_thread.o.log':
>>> No such file or directory
>>> lib/CompileJvm.gmk:149: recipe for target
>>> '/export/users/dh198349/jdk-dev2/build/linux-x64-debug/hotspot/variant-server/libjvm/objs/thread.o'
>>> failed
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8204664
>>> Patch inline:
>>> diff --git a/make/Init.gmk b/make/Init.gmk
>>> --- a/make/Init.gmk
>>> +++ b/make/Init.gmk
>>> @@ -298,7 +298,6 @@
>>> main: $(INIT_TARGETS)
>>> ifneq ($(SEQUENTIAL_TARGETS)$(PARALLEL_TARGETS), )
>>> $(call RotateLogFiles)
>>> - $(call PrepareFailureLogs)
>>> $(PRINTF) "Building $(TARGET_DESCRIPTION)\n"
>>> $(BUILD_LOG_PIPE)
>>> ifneq ($(SEQUENTIAL_TARGETS), )
>>> # Don't touch build output dir since we might be
>>> cleaning. That
>>> @@ -308,6 +307,7 @@
>>> $(SEQUENTIAL_TARGETS) )
>>> endif
>>> ifneq ($(PARALLEL_TARGETS), )
>>> + $(call PrepareFailureLogs)
>>> $(call StartGlobalTimer)
>>> $(call PrepareSmartJavac)
>>> # JOBS will only be empty for a bootcycle-images
>>> recursive call
>>>
>>> /Magnus
>>
>
More information about the build-dev
mailing list