RFR: JDK-8174172: Race when building java.base.jmod
    Erik Joelsson 
    erik.joelsson at oracle.com
       
    Wed Feb  8 11:33:03 UTC 2017
    
    
  
When building java.base.jmod, we use --hash-modules to include hashes of 
all the non upgradeable jmods in java.base.jmod. The make dependencies 
are setup to make sure all non upgradeable jmods are built before 
java.base.jmod. In some cases, this risks failing because we have a non 
upgradeable module which depends on an upgradeable module. If this 
upgradeable module is not available to the jmod tool, it will fail.
The solution is to add all jmods as prerequisites to building 
java.base.jmod instead of just the non upgradeable ones.
Bug: https://bugs.openjdk.java.net/browse/JDK-8174172
Patch:
diff -r 98503c50ee77 make/Main.gmk
--- a/make/Main.gmk
+++ b/make/Main.gmk
@@ -654,8 +654,7 @@
    # When creating a BUILDJDK, we don't need to add hashes to 
java.base, thus
    # we don't need to depend on all other jmods
    ifneq ($(CREATING_BUILDJDK), true)
-    java.base-jmod: jrtfs-jar $(filter-out java.base-jmod \
-        $(addsuffix -jmod, $(call FindAllUpgradeableModules)), 
$(JMOD_TARGETS))
+    java.base-jmod: jrtfs-jar $(filter-out java.base-jmod, $(JMOD_TARGETS))
    endif
    # Building java.base-jmod requires all of hotspot to be built.
/Erik
    
    
More information about the build-dev
mailing list