--- a/common/autoconf/compare.sh.in Thu Apr 28 08:26:30 2016 -0700
+++ b/common/autoconf/compare.sh.in Thu Apr 28 09:37:59 2016 -0700
@@ -31,7 +31,7 @@
export LEGACY_BUILD_DIR=@OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU_LEGACY@
-sexport OPENJDK_TARGET_OS="@OPENJDK_TARGET_OS@"
+export OPENJDK_TARGET_OS="@OPENJDK_TARGET_OS@"
export OPENJDK_TARGET_CPU="@OPENJDK_TARGET_CPU@"
export OPENJDK_TARGET_CPU_LIBDIR="@OPENJDK_TARGET_CPU_LIBDIR@"
export DEBUG_LEVEL="@DEBUG_LEVEL@"
--- a/common/conf/jib-profiles.js Thu Apr 28 08:26:30 2016 -0700
+++ b/common/conf/jib-profiles.js Thu Apr 28 09:37:59 2016 -0700
@@ -212,14 +212,17 @@
* @returns Common values
*/
var getJibProfilesCommon = function (input) {
- var common = {
- dependencies: ["boot_jdk", "gnumake", "jtreg"],
- configure_args: ["--with-default-make-target=all", "--enable-jtreg-failure-handler"],
- configure_args_32bit: ["--with-target-bits=32", "--with-jvm-variants=client,server"],
- configure_args_debug: ["--enable-debug"],
- configure_args_slowdebug: ["--with-debug-level=slowdebug"],
- organization: "jpg.infra.builddeps"
- };
+ var common = {};
+
+ common.dependencies = ["boot_jdk", "gnumake", "jtreg"],
+ common.default_make_targets = ["product-images", "test-image"],
+ common.default_make_targets_debug = common.default_make_targets;
+ common.default_make_targets_slowdebug = common.default_make_targets;
+ common.configure_args = ["--enable-jtreg-failure-handler"],
+ common.configure_args_32bit = ["--with-target-bits=32", "--with-jvm-variants=client,server"],
+ common.configure_args_debug = ["--enable-debug"],
+ common.configure_args_slowdebug = ["--with-debug-level=slowdebug"],
+ common.organization = "jpg.infra.builddeps"
return common;
};
@@ -241,8 +244,8 @@
target_os: "linux",
target_cpu: "x64",
dependencies: concat(common.dependencies, "devkit"),
- configure_args: concat(common.configure_args, "--with-zlib=system"),
- make_args: common.make_args
+ configure_args: concat(common.configure_args, "--with-zlib=system"),
+ default_make_targets: concat(common.default_make_targets, "docs-image")
},
"linux-x86": {
@@ -252,39 +255,39 @@
dependencies: concat(common.dependencies, "devkit"),
configure_args: concat(common.configure_args, common.configure_args_32bit,
"--with-zlib=system"),
- make_args: common.make_args
+ default_make_targets: common.default_make_targets
},
"macosx-x64": {
target_os: "macosx",
target_cpu: "x64",
dependencies: concat(common.dependencies, "devkit"),
- configure_args: concat(common.configure_args, "--with-zlib=system"),
- make_args: common.make_args
+ configure_args: concat(common.configure_args, "--with-zlib=system"),
+ default_make_targets: common.default_make_targets
},
"solaris-x64": {
target_os: "solaris",
target_cpu: "x64",
dependencies: concat(common.dependencies, "devkit", "cups"),
- configure_args: concat(common.configure_args, "--with-zlib=system"),
- make_args: common.make_args
+ configure_args: concat(common.configure_args, "--with-zlib=system"),
+ default_make_targets: common.default_make_targets
},
"solaris-sparcv9": {
target_os: "solaris",
target_cpu: "sparcv9",
dependencies: concat(common.dependencies, "devkit", "cups"),
- configure_args: concat(common.configure_args, "--with-zlib=system"),
- make_args: common.make_args
+ configure_args: concat(common.configure_args, "--with-zlib=system"),
+ default_make_targets: common.default_make_targets
},
"windows-x64": {
target_os: "windows",
target_cpu: "x64",
dependencies: concat(common.dependencies, "devkit", "freetype"),
- configure_args: common.configure_args,
- make_args: common.make_args
+ configure_args: concat(common.configure_args),
+ default_make_targets: common.default_make_targets
},
"windows-x86": {
@@ -293,7 +296,7 @@
build_cpu: "x64",
dependencies: concat(common.dependencies, "devkit", "freetype"),
configure_args: concat(common.configure_args, common.configure_args_32bit),
- make_args: common.make_args
+ default_make_targets: common.default_make_targets
}
};
profiles = concatObjects(profiles, mainProfiles);
@@ -306,14 +309,15 @@
// implementation builds.
var openOnlyProfiles = generateOpenOnlyProfiles(common, mainProfiles);
// The open only profiles on linux are used for reference builds and should
- // produce the compact profile images by default.
+ // produce the compact profile images by default. This adds "profiles" as an
+ // extra default target.
var openOnlyProfilesExtra = {
"linux-x64-open": {
- configure_args: ["--with-default-make-target=all profiles"],
+ default_make_targets: "profiles"
},
"linux-x86-open": {
- configure_args: ["--with-default-make-target=all profiles"],
+ default_make_targets: "profiles"
}
};
var openOnlyProfiles = concatObjects(openOnlyProfiles, openOnlyProfilesExtra);
@@ -336,6 +340,7 @@
// Generate the missing platform attributes
profiles = generatePlatformAttributes(profiles);
+ profiles = generateDefaultMakeTargetsConfigureArg(common, profiles);
return profiles;
};
@@ -469,6 +474,8 @@
var debugProfile = profile + "-debug";
newProfiles[debugProfile] = clone(profiles[profile]);
newProfiles[debugProfile].debug_level = "fastdebug";
+ newProfiles[debugProfile].default_make_targets
+ = common.default_make_targets_debug;
newProfiles[debugProfile].labels
= concat(newProfiles[debugProfile].labels || [], "debug"),
newProfiles[debugProfile].configure_args
@@ -492,6 +499,8 @@
var debugProfile = profile + "-slowdebug";
newProfiles[debugProfile] = clone(profiles[profile]);
newProfiles[debugProfile].debug_level = "slowdebug";
+ newProfiles[debugProfile].default_make_targets
+ = common.default_make_targets_slowdebug;
newProfiles[debugProfile].labels
= concat(newProfiles[debugProfile].labels || [], "slowdebug"),
newProfiles[debugProfile].configure_args
@@ -524,6 +533,39 @@
};
/**
+ * The default_make_targets attribute on a profile is not a real Jib attribute.
+ * This function rewrites that attribute into the corresponding configure arg.
+ * Calling this function multiple times on the same profiles object is safe.
+ *
+ * @param common Common values
+ * @param profiles Profiles map to rewrite profiles for
+ * @returns {{}} New map of profiles with the make targets converted
+ */
+var generateDefaultMakeTargetsConfigureArg = function (common, profiles) {
+ var ret = concatObjects(profiles, {});
+ for (var profile in ret) {
+ if (ret[profile]["default_make_targets"] != null) {
+ var targetsString = concat(ret[profile].default_make_targets).join(" ");
+ // Iterate over all configure args and see if --with-default-make-target
+ // is already there and change it, otherwise add it.
+ var found = false;
+ for (var arg in ret[profile].configure_args) {
+ if (arg.startsWith("--with-default-make-target")) {
+ found = true;
+ arg.replace(/=.*/, "=" + targetsString);
+ }
+ }
+ if (!found) {
+ ret[profile].configure_args = concat(
+ ret[profile].configure_args,
+ "--with-default-make-target=" + targetsString);
+ }
+ }
+ }
+ return ret;
+}
+
+/**
* Deep clones an object tree.
*
* @param o Object to clone
--- a/make/CreateJmods.gmk Thu Apr 28 08:26:30 2016 -0700
+++ b/make/CreateJmods.gmk Thu Apr 28 09:37:59 2016 -0700
@@ -82,7 +82,7 @@
--os-version $(REQUIRED_OS_VERSION) \
--modulepath $(IMAGES_OUTPUTDIR)/jmods\
--hash-dependencies '.*' \
- --exclude '**_the.*' \
+ --exclude '**{_the.*,*.diz,*.debuginfo,*.dSYM/**,*.pdb,*.map}' \
$(JMOD_FLAGS) $(SUPPORT_OUTPUTDIR)/jmods/$(notdir $@)
$(MV) $(SUPPORT_OUTPUTDIR)/jmods/$(notdir $@) $@
--- a/make/GensrcModuleInfo.gmk Thu Apr 28 08:26:30 2016 -0700
+++ b/make/GensrcModuleInfo.gmk Thu Apr 28 09:37:59 2016 -0700
@@ -78,21 +78,30 @@
# let space represent new lines in the variable as $(shell) normalizes all
# whitespace.
$(foreach f, $(MOD_FILES), \
- $(eval MOD_FILE_CONTENTS += $(shell $(GREP) -v ".\*" $f | $(TR) ' ' '/')))
+ $(eval MOD_FILE_CONTENTS += $(shell $(GREP) -v -e ".\*" -e "//" $f | $(TR) ' ' '/')))
+
+ # Separate the modifications into qualified exports and the rest
+ MODS_QUALIFIED_EXPORTS := $(call containing, /to/, $(MOD_FILE_CONTENTS))
+ MODS_REST := $(filter-out $(MODS_QUALIFIED_EXPORTS), $(MOD_FILE_CONTENTS))
# Filter the contents for modules that are actually being built
MODULES_FILTER := $(addprefix %/, $(addsuffix ;, $(ALL_MODULES)))
- MODULES_FILTER += provides%
- MODIFICATIONS := $(filter $(MODULES_FILTER), $(MOD_FILE_CONTENTS))
+ MODIFICATIONS := $(filter $(MODULES_FILTER), $(MODS_QUALIFIED_EXPORTS)) \
+ $(MODS_REST)
# Convert the modification lines into arguments for the modification tool.
# Filter out modifications for non existing to-modules.
$(foreach line, $(MODIFICATIONS), \
$(eval split_line := $(subst /,$(SPACE),$(line))) \
$(eval command := $(word 1, $(split_line))) \
- $(eval package := $(word 2, $(split_line))) \
+ $(eval package := $(patsubst %;,%,$(word 2, $(split_line)))) \
$(eval to_module := $(patsubst %;,%,$(word 4, $(split_line)))) \
- $(eval ARGS += -$(command) $(package)/$(to_module)))
+ $(if $(to_module), \
+ $(eval ARGS += -$(command) $(package)/$(to_module)) \
+ , \
+ $(eval ARGS += -$(command) $(package)) \
+ ) \
+ )
ifneq ($(ARGS), )
$(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/module-info.java: \
--- a/make/Images.gmk Thu Apr 28 08:26:30 2016 -0700
+++ b/make/Images.gmk Thu Apr 28 09:37:59 2016 -0700
@@ -423,6 +423,55 @@
endif
################################################################################
+# Debug symbols
+# Since debug symbols are not included in the jmod files, they need to be copied
+# in manually after generating the images.
+
+ALL_JDK_MODULES := $(JDK_MODULES)
+ALL_JRE_MODULES := $(sort $(JRE_MODULES), $(foreach m, $(JRE_MODULES), \
+ $(call FindTransitiveDepsForModule, $m)))
+
+ifeq ($(OPENJDK_TARGET_OS), windows)
+ LIBS_TARGET_SUBDIR := bin
+else
+ LIBS_TARGET_SUBDIR := lib
+endif
+
+DEBUGINFO_SUFFIXES := .diz .debuginfo .pdb .map
+
+# Param 1 - dir to find debuginfo files in
+FindDebuginfoFiles = \
+ $(wildcard $(addprefix $1/*, $(DEBUGINFO_SUFFIXES)) \
+ $(addprefix $1/*/*, $(DEBUGINFO_SUFFIXES)) \
+ $(addprefix $1/*/*/*, $(DEBUGINFO_SUFFIXES)))
+
+# On Macosx, if debug symbols have not been zipped, find all files inside *.dSYM
+# dirs.
+ifeq ($(OPENJDK_TARGET_OS)-$(ZIP_EXTERNAL_DEBUG_SYMBOLS), macosx-false)
+ $(eval $(call FillCacheFind, \
+ $(SUPPORT_OUTPUTDIR)/modules_cmds $(SUPPORT_OUTPUTDIR)/modules_libs/))
+ FindDebuginfoFiles = \
+ $(if $(wildcard $1), $(call containing, .dSYM/, $(call CacheFind, $1)))
+endif
+
+# Param 1 - either JDK or JRE
+SetupCopyDebuginfo = \
+ $(foreach m, $(ALL_$1_MODULES), \
+ $(eval $(call SetupCopyFiles, COPY_$1_LIBS_DEBUGINFO_$m, \
+ SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/$m, \
+ DEST := $($1_IMAGE_DIR)/$(LIBS_TARGET_SUBDIR), \
+ FILES := $(call FindDebuginfoFiles, \
+ $(SUPPORT_OUTPUTDIR)/modules_libs/$m), \
+ )) \
+ $(eval $1_TARGETS += $$(COPY_$1_LIBS_DEBUGINFO_$m)) \
+ )
+
+# No space before argument to avoid having to put $(strip ) everywhere in
+# implementation above.
+$(call SetupCopyDebuginfo,JDK)
+$(call SetupCopyDebuginfo,JRE)
+
+################################################################################
# Include custom post hook here to make it possible to augment the target lists
# before actual target prerequisites are declared.
--- a/make/Init.gmk Thu Apr 28 08:26:30 2016 -0700
+++ b/make/Init.gmk Thu Apr 28 09:37:59 2016 -0700
@@ -268,8 +268,13 @@
##############################################################################
MAIN_TARGETS := $(SEQUENTIAL_TARGETS) $(PARALLEL_TARGETS) $(COMPARE_BUILD_MAKE)
+ # If building the default target, add what they are to the description.
+ DESCRIPTION_TARGETS := $(strip $(MAIN_TARGETS))
+ ifeq ($(DESCRIPTION_TARGETS), default)
+ DESCRIPTION_TARGETS += ($(DEFAULT_MAKE_TARGET))
+ endif
TARGET_DESCRIPTION := target$(if $(word 2, $(MAIN_TARGETS)),s) \
- '$(strip $(MAIN_TARGETS))' in configuration '$(CONF_NAME)'
+ '$(strip $(DESCRIPTION_TARGETS))' in configuration '$(CONF_NAME)'
# MAKEOVERRIDES is automatically set and propagated by Make to sub-Make calls.
# We need to clear it of the init-specific variables. The user-specified
--- a/make/Javadoc.gmk Thu Apr 28 08:26:30 2016 -0700
+++ b/make/Javadoc.gmk Thu Apr 28 09:37:59 2016 -0700
@@ -1580,7 +1580,7 @@
JDKNET_PACKAGES_FILE = $(DOCSTMPDIR)/jdknet.packages
# The modules required to be documented
-JDKNET_MODULES = java.base
+JDKNET_MODULES = jdk.net
jdknetdocs: $(JDKNET_INDEX_HTML)
--- a/make/Jprt.gmk Thu Apr 28 08:26:30 2016 -0700
+++ b/make/Jprt.gmk Thu Apr 28 09:37:59 2016 -0700
@@ -108,8 +108,8 @@
SRC_JRE_MACOSX_BUNDLE_DIR := $(JRE_MACOSX_BUNDLE_DIR)
# Bundle up the images
-JPRT_TARGET ?= all
-ifeq ($(JPRT_TARGET), all)
+JPRT_TARGET ?= default
+ifeq ($(JPRT_TARGET), default)
bundles: $(JPRT_TARGET)
@$(call TargetEnter)
$(MKDIR) -p $(BUILD_OUTPUT)/bundles
--- a/make/Main.gmk Thu Apr 28 08:26:30 2016 -0700
+++ b/make/Main.gmk Thu Apr 28 09:37:59 2016 -0700
@@ -340,10 +340,10 @@
docs-jvmtidoc:
+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk jvmtidocs)
-zip-docs: docs-javadoc docs-jvmtidoc
+zip-docs:
+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk zip-docs)
-ALL_TARGETS += docs-javadoc docs-jvmtidoc
+ALL_TARGETS += docs-javadoc docs-jvmtidoc zip-docs
################################################################################
# Cross compilation support
@@ -602,6 +602,8 @@
docs-jvmtidoc: hotspot
+ zip-docs: docs-javadoc docs-jvmtidoc
+
test: jimages test-image
create-buildjdk-copy: jdk.jlink-java java.base-gendata
@@ -703,7 +705,7 @@
endif
# This target builds the documentation image
-docs-image: zip-docs
+docs-image: docs-javadoc docs-jvmtidoc
# This target builds the test image
test-image: prepare-test-image test-image-hotspot-jtreg-native \
@@ -727,7 +729,7 @@
docs: docs-image
all: all-images
-ALL_TARGETS += default jdk images docs all zip-docs
+ALL_TARGETS += default jdk images docs all
################################################################################
################################################################################
--- a/make/common/Modules.gmk Thu Apr 28 08:26:30 2016 -0700
+++ b/make/common/Modules.gmk Thu Apr 28 09:37:59 2016 -0700
@@ -63,6 +63,7 @@
java.xml.crypto \
jdk.httpserver \
jdk.management \
+ jdk.net \
jdk.sctp \
jdk.security.auth \
jdk.security.jgss \
@@ -185,7 +186,8 @@
$(call GetModuleNameFromModuleInfo, $(MODULE_INFOS))))
FindImportedModules = \
- $(if $(IMPORT_MODULES_CLASSES), $(notdir $(wildcard $(IMPORT_MODULES_CLASSES)/*)))
+ $(filter-out $(MODULES_FILTER), \
+ $(if $(IMPORT_MODULES_CLASSES), $(notdir $(wildcard $(IMPORT_MODULES_CLASSES)/*))))
# Find all source dirs for a particular module
# $1 - Module to find source dirs for