RFR: JDK-8204664 PrepareFailureLogs should be done after sequential make targets

Erik Joelsson erik.joelsson at oracle.com
Mon Jun 11 15:42:26 UTC 2018


Hello,

Looks ok. Perhaps this warrants a comment somewhere about the failure 
logs only working in parallel targets?

/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