8154956: Module system implementation refresh (4/2016)
authoralanb
Tue, 03 May 2016 09:09:07 +0100
changeset 37764 63e0379dd186
parent 37648 3be3da3d90bf
child 37765 d65d7bda43ce
8154956: Module system implementation refresh (4/2016) Reviewed-by: alanb, mchung, chegar, redestad Contributed-by: alan.bateman@oracle.com, mandy.chung@oracle.com, erik.joelsson@oracle.com
common/autoconf/generated-configure.sh
common/autoconf/spec.gmk.in
common/conf/jib-profiles.js
make/CreateBuildJdkCopy.gmk
make/CreateJmods.gmk
make/Main.gmk
make/common/Modules.gmk
--- a/common/autoconf/generated-configure.sh	Thu Apr 28 08:26:30 2016 -0700
+++ b/common/autoconf/generated-configure.sh	Tue May 03 09:09:07 2016 +0100
@@ -5070,7 +5070,7 @@
 #CUSTOM_AUTOCONF_INCLUDE
 
 # Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1460963400
+DATE_WHEN_GENERATED=1461307675
 
 ###############################################################################
 #
--- a/common/autoconf/spec.gmk.in	Thu Apr 28 08:26:30 2016 -0700
+++ b/common/autoconf/spec.gmk.in	Tue May 03 09:09:07 2016 +0100
@@ -569,14 +569,15 @@
 # Use ?= as this can be overridden from bootcycle-spec.gmk
 BOOT_JDK_MODULAR ?= @BOOT_JDK_MODULAR@
 
+INTERIM_OVERRIDE_MODULES := java.compiler jdk.compiler \
+    jdk.jdeps jdk.javadoc jdk.rmic
 ifeq ($(BOOT_JDK_MODULAR), true)
-  INTERIM_OVERRIDE_MODULES_ARGS = -Xpatch:$(BUILDTOOLS_OUTPUTDIR)/override_modules
+  INTERIM_OVERRIDE_MODULES_ARGS = $(foreach m, $(INTERIM_OVERRIDE_MODULES), \
+      -Xpatch:$m=$(BUILDTOOLS_OUTPUTDIR)/override_modules/$m)
   INTERIM_LANGTOOLS_ARGS = $(INTERIM_OVERRIDE_MODULES_ARGS)
   JAVAC_MAIN_CLASS = -m jdk.compiler/com.sun.tools.javac.Main
   JAVADOC_MAIN_CLASS = -m jdk.javadoc/jdk.javadoc.internal.tool.Main
 else
-  INTERIM_OVERRIDE_MODULES := java.compiler jdk.compiler \
-      jdk.jdeps jdk.javadoc jdk.rmic
   INTERIM_OVERRIDE_MODULES_ARGS = \
       -Xbootclasspath/p:$(call PathList, \
           $(addprefix $(BUILDTOOLS_OUTPUTDIR)/override_modules/, \
--- a/common/conf/jib-profiles.js	Thu Apr 28 08:26:30 2016 -0700
+++ b/common/conf/jib-profiles.js	Tue May 03 09:09:07 2016 +0100
@@ -399,7 +399,7 @@
         jtreg: {
             server: "javare",
             revision: "4.2",
-            build_number: "b01",
+            build_number: "b02",
             checksum_file: "MD5_VALUES",
             file: "jtreg_bin-4.2.zip",
             environment_name: "JT_HOME"
--- a/make/CreateBuildJdkCopy.gmk	Thu Apr 28 08:26:30 2016 -0700
+++ b/make/CreateBuildJdkCopy.gmk	Tue May 03 09:09:07 2016 +0100
@@ -35,7 +35,7 @@
 # Copy the modules needed to run jlink and jmod. Use bulk copy instead of
 # SetupCopyFiles since there are so many files.
 
-COPY_CLASSES_TARGET := $(BUILDJDK_OUTPUTDIR)/jdk/modules/_buildjdk-copy-maker
+COPY_CLASSES_TARGET := $(BUILDJDK_OUTPUTDIR)/jdk/modules/java.base/_the.buildjdk-copy-marker
 
 $(COPY_CLASSES_TARGET): $(call CacheFind, $(wildcard \
     $(addprefix $(JDK_OUTPUTDIR)/modules/, $(MODULES_TO_COPY))))
--- a/make/CreateJmods.gmk	Thu Apr 28 08:26:30 2016 -0700
+++ b/make/CreateJmods.gmk	Tue May 03 09:09:07 2016 +0100
@@ -64,9 +64,25 @@
   DEPS += $(call CacheFind, $(CLASSES_DIR))
 endif
 
-# Add dependencies on other jmod files
-DEPS += $(patsubst %, $(IMAGES_OUTPUTDIR)/jmods/%.jmod, \
-    $(call FindDepsForModule, $(MODULE)))
+# Add dependencies on other jmod files. Only java.base needs access to other
+# jmods.
+ifeq ($(MODULE), java.base)
+  DEPS += $(patsubst %, $(IMAGES_OUTPUTDIR)/jmods/%.jmod, \
+      $(filter-out java.base, $(call FindAllModules)))
+
+  # TODO: find modules that directly and indrectly on upgradeable modules
+  EXCLUDE_HASH_MODULES := $(UPGRADEABLE_MODULES) \
+    java.se.ee \
+    jdk.rmic \
+    jdk.xml.bind \
+    jdk.xml.ws \
+    #
+
+  EXCLUDE_PATTERN := $(strip $(subst $(SPACE),|,$(strip $(EXCLUDE_HASH_MODULES))))
+
+  JMOD_FLAGS += --modulepath $(IMAGES_OUTPUTDIR)/jmods \
+    		--hash-modules '^(?!$(EXCLUDE_PATTERN))'
+endif
 
 # TODO: What about headers?
 # Create jmods in a temp dir and then move them into place to keep the
@@ -81,7 +97,6 @@
             --os-arch $(OPENJDK_TARGET_CPU_LEGACY) \
             --os-version $(REQUIRED_OS_VERSION) \
 	    --modulepath $(IMAGES_OUTPUTDIR)/jmods\
-            --hash-dependencies '.*' \
             --exclude '**_the.*' \
 	    $(JMOD_FLAGS) $(SUPPORT_OUTPUTDIR)/jmods/$(notdir $@)
 	$(MV) $(SUPPORT_OUTPUTDIR)/jmods/$(notdir $@) $@
--- a/make/Main.gmk	Thu Apr 28 08:26:30 2016 -0700
+++ b/make/Main.gmk	Tue May 03 09:09:07 2016 +0100
@@ -562,9 +562,9 @@
   $(foreach m, $(GENDATA_MODULES), $(eval $m-strip: $m-gendata))
   $(foreach m, $(COPY_MODULES), $(eval $m-strip: $m-copy))
 
-  # Declare dependencies between jmod targets
-  $(foreach m, $(JMOD_MODULES), \
-      $(eval $m-jmod: $(addsuffix -jmod, $(call FindDepsForModule,$m))))
+  # Declare dependencies between jmod targets. Only java.base jmod needs access
+  # to the other jmods to be built.
+  java.base-jmod: $(filter-out java.base-jmod, $(JMOD_TARGETS))
 
   # Declare dependencies from <module>-jmod to all other module targets
   $(foreach m, $(STRIP_MODULES), $(eval $m-jmod: $m-strip))
--- a/make/common/Modules.gmk	Thu Apr 28 08:26:30 2016 -0700
+++ b/make/common/Modules.gmk	Tue May 03 09:09:07 2016 +0100
@@ -38,13 +38,12 @@
 BOOT_MODULES :=
 PLATFORM_MODULES :=
 JRE_TOOL_MODULES :=
+UPGRADEABLE_MODULES :=
+AGGREGATOR_MODULES :=
 
 # Hook to include the corresponding custom file, if present.
 $(eval $(call IncludeCustomExtension, , common/Modules.gmk))
 
-UPGRADEABLE_MDOULES :=
-AGGREGATOR_MDOULES :=
-
 BOOT_MODULES += \
     java.base \
     java.datatransfer \