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

Reply via email to