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


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)), 
+    java.base-jmod: jrtfs-jar $(filter-out java.base-jmod, $(JMOD_TARGETS))

    # Building java.base-jmod requires all of hotspot to be built.


More information about the build-dev mailing list