RFR: JDK-8204664 PrepareFailureLogs should be done after sequential make targets (original) (raw)

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/hotspotvariant-serverlibjvmobjsthread.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: $(INITTARGETS) ifneq ($(SEQUENTIALTARGETS)$(PARALLELTARGETS), ) $(call RotateLogFiles) -         $(call PrepareFailureLogs) $(PRINTF) "Building $(TARGETDESCRIPTION)\n" $(BUILDLOGPIPE) ifneq ($(SEQUENTIALTARGETS), ) # Don't touch build output dir since we might be cleaning. That @@ -308,6 +307,7 @@ $(SEQUENTIALTARGETS) ) endif ifneq ($(PARALLELTARGETS), ) +           $(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