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