diff --git a/.hgtags-top-repo b/.hgtags-top-repo index 26a93cd5862..289a8ebab69 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -297,3 +297,4 @@ d1f37d39ff2421f956a6ddf316cf763807bc3363 jdk9-b50 1822e59f17121b09e7899cf338cfb6e37fe5fceb jdk9-b52 d6ed47125a76cd1cf8a100568507bfb5e9669d9f jdk9-b53 cb7367141e910e265b8344a8facee740bd1e5467 jdk9-b54 +0c37a832458f0e0b7d2a3f1a6f69aeae311aeb18 jdk9-b55 diff --git a/common/autoconf/configure.ac b/common/autoconf/configure.ac index 6cdab79347e..14497a039ad 100644 --- a/common/autoconf/configure.ac +++ b/common/autoconf/configure.ac @@ -54,6 +54,7 @@ m4_include([toolchain_windows.m4]) AC_DEFUN_ONCE([CUSTOM_EARLY_HOOK]) AC_DEFUN_ONCE([CUSTOM_LATE_HOOK]) +AC_DEFUN_ONCE([CUSTOM_CONFIG_OUTPUT_GENERATED_HOOK]) AC_DEFUN_ONCE([CUSTOM_SUMMARY_AND_WARNINGS_HOOK]) # This line needs to be here, verbatim, after all includes and the dummy hook @@ -265,6 +266,7 @@ CONFIG_STATUS="$OUTPUT_ROOT/config.status" # Create the actual output files. Now the main work of configure is done. AC_OUTPUT +CUSTOM_CONFIG_OUTPUT_GENERATED_HOOK # Try to move the config.log file to the output directory. if test -e ./config.log; then diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4 index 045a7922b2f..84df8837c7e 100644 --- a/common/autoconf/flags.m4 +++ b/common/autoconf/flags.m4 @@ -481,9 +481,8 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK], CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt" CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt" elif test "x$TOOLCHAIN_TYPE" = xxlc; then - LDFLAGS_JDK="${LDFLAGS_JDK} -q64 -brtl -bnolibpath -liconv -bexpall" - CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" - CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" + CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt" + CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt" fi if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then @@ -762,6 +761,8 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK], elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext" LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib" + elif test "x$TOOLCHAIN_TYPE" = xxlc; then + LDFLAGS_JDK="${LDFLAGS_JDK} -brtl -bnolibpath -liconv -bexpall -bernotok" fi # Customize LDFLAGS for executables diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh index e041c3ee64a..d7648b21e96 100644 --- a/common/autoconf/generated-configure.sh +++ b/common/autoconf/generated-configure.sh @@ -4362,13 +4362,14 @@ VS_SDK_PLATFORM_NAME_2013= + # This line needs to be here, verbatim, after all includes and the dummy hook # definitions. It is replaced with custom functionality when building # custom sources. #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1425994551 +DATE_WHEN_GENERATED=1426774983 ############################################################################### # @@ -41173,7 +41174,7 @@ $as_echo "$as_me: The path of JT_HOME, which resolves as \"$path\", is invalid." # jtreg win32 script works for everybody - JTREGEXE="$JT_HOME/win32/bin/jtreg" + JTREGEXE="$JT_HOME/bin/jtreg" if test ! -f "$JTREGEXE"; then as_fn_error $? "JTReg executable does not exist: $JTREGEXE" "$LINENO" 5 @@ -42372,9 +42373,8 @@ $as_echo "$ac_cv_c_bigendian" >&6; } CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt" CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt" elif test "x$TOOLCHAIN_TYPE" = xxlc; then - LDFLAGS_JDK="${LDFLAGS_JDK} -q64 -brtl -bnolibpath -liconv -bexpall" - CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" - CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" + CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt" + CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt" fi if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then @@ -42668,6 +42668,8 @@ fi elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext" LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib" + elif test "x$TOOLCHAIN_TYPE" = xxlc; then + LDFLAGS_JDK="${LDFLAGS_JDK} -brtl -bnolibpath -liconv -bexpall -bernotok" fi # Customize LDFLAGS for executables @@ -52969,6 +52971,7 @@ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + # Try to move the config.log file to the output directory. if test -e ./config.log; then $MV -f ./config.log "$OUTPUT_ROOT/config.log" 2> /dev/null diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4 index 1de284e285e..7737ef8adf2 100644 --- a/common/autoconf/toolchain.m4 +++ b/common/autoconf/toolchain.m4 @@ -763,7 +763,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG], BASIC_FIXUP_PATH([JT_HOME]) # jtreg win32 script works for everybody - JTREGEXE="$JT_HOME/win32/bin/jtreg" + JTREGEXE="$JT_HOME/bin/jtreg" if test ! -f "$JTREGEXE"; then AC_MSG_ERROR([JTReg executable does not exist: $JTREGEXE]) diff --git a/make/CompileJavaModules.gmk b/make/CompileJavaModules.gmk index 23188129d3b..066802688e7 100644 --- a/make/CompileJavaModules.gmk +++ b/make/CompileJavaModules.gmk @@ -90,12 +90,16 @@ endif ################################################################################ +java.compiler_ADD_JAVAC_FLAGS := -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*' + +################################################################################ + java.datatransfer_ADD_JAVAC_FLAGS := -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*' java.datatransfer_COPY := flavormap.properties ################################################################################ -java.desktop_ADD_JAVAC_FLAGS := -Xdoclint:all/protected,-missing,-reference '-Xdoclint/package:java.*,javax.*' +java.desktop_ADD_JAVAC_FLAGS := -Xdoclint:all/protected,-missing,-reference '-Xdoclint/package:java.*,javax.*' java.desktop_COPY := .gif .png .wav .txt .xml .css .pf java.desktop_CLEAN := iio-plugin.properties cursors.properties @@ -336,6 +340,7 @@ jdk.charsets_COPY := .dat ################################################################################ +jdk.compiler_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:-com.sun.tools.*' jdk.compiler_COPY := javax.tools.JavaCompilerTool jdk.compiler_CLEAN_FILES := $(wildcard \ $(patsubst %, $(JDK_TOPDIR)/src/jdk.compiler/share/classes/%/*.properties, \ diff --git a/make/Images.gmk b/make/Images.gmk index 6fe4f766d36..3a8171416c7 100644 --- a/make/Images.gmk +++ b/make/Images.gmk @@ -494,29 +494,16 @@ ifeq ($(GCOV_ENABLED), true) GCOV_FIND_EXPR := -type f -name "*.gcno" - ifeq ($(JVM_VARIANT_CLIENT), true) - $(eval $(call SetupCopyFiles,COPY_HOTSPOT_CLIENT_GCOV_GCNO, \ - SRC := $(HOTSPOT_OUTPUTDIR), \ - DEST := $(SYMBOLS_IMAGE_DIR)/gcov/hotspot/client, \ - FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR)/*compiler1/ $(GCOV_FIND_EXPR)), \ - FLATTEN := true)) + $(eval $(call SetupCopyFiles,COPY_HOTSPOT_GCOV_GCNO, \ + SRC := $(OUTPUT_ROOT), \ + DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ + FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR) $(GCOV_FIND_EXPR)))) - SYMBOLS_TARGETS += $(COPY_HOTSPOT_CLIENT_GCOV_GCNO) - endif - - ifeq ($(JVM_VARIANT_SERVER), true) - $(eval $(call SetupCopyFiles,COPY_HOTSPOT_SERVER_GCOV_GCNO, \ - SRC := $(HOTSPOT_OUTPUTDIR), \ - DEST := $(SYMBOLS_IMAGE_DIR)/gcov/hotspot/server, \ - FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR)/*compiler2/ $(GCOV_FIND_EXPR)), \ - FLATTEN := true)) - - SYMBOLS_TARGETS += $(COPY_HOTSPOT_SERVER_GCOV_GCNO) - endif + SYMBOLS_TARGETS += $(COPY_HOTSPOT_GCOV_GCNO) $(eval $(call SetupCopyFiles,COPY_JDK_GCOV_GCNO, \ - SRC := $(SUPPORT_OUTPUTDIR)/native, \ - DEST := $(SYMBOLS_IMAGE_DIR)/gcov/jdk, \ + SRC := $(OUTPUT_ROOT), \ + DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ FILES := $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/native $(GCOV_FIND_EXPR)))) SYMBOLS_TARGETS += $(COPY_JDK_GCOV_GCNO) diff --git a/make/common/JavaCompilation.gmk b/make/common/JavaCompilation.gmk index 0de9c74f14b..c08d1da62a3 100644 --- a/make/common/JavaCompilation.gmk +++ b/make/common/JavaCompilation.gmk @@ -369,7 +369,7 @@ define add_file_to_clean $(MKDIR) -p $$(@D) export LC_ALL=C ; ( $(CAT) $$< && $(ECHO) "" ) \ | $(SED) -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' \ - -e 's/\([^\\]\)!/\1\\!/g' -e 's/#.*/#/g' \ + -e 's/\([^\\]\)!/\1\\!/g' -e 's/^[ ]*#.*/#/g' \ | $(SED) -f "$(SRC_ROOT)/make/common/support/unicode2x.sed" \ | $(SED) -e '/^#/d' -e '/^$$$$/d' \ -e :a -e '/\\$$$$/N; s/\\\n//; ta' \ diff --git a/make/common/NativeCompilation.gmk b/make/common/NativeCompilation.gmk index 17dca95b7fe..001812585c2 100644 --- a/make/common/NativeCompilation.gmk +++ b/make/common/NativeCompilation.gmk @@ -60,7 +60,7 @@ WINDOWS_SHOWINCLUDE_SED_PATTERN := \ -e 's|Note: including file: *||' \ -e 's|\\|/|g' \ -e 's|^\([a-zA-Z]\):|$(UNIX_PATH_PREFIX)/\1|g' \ - -e '/$(subst /,\/,$(TOPDIR))/!d' \ + -e '\|$(TOPDIR)|I !d' \ -e 's|$$$$| \\|g' \ # @@ -153,7 +153,7 @@ define add_native_source exit `cat $$($1_$2_DEP).exitvalue` $(RM) $$($1_$2_DEP).exitvalue ($(ECHO) $$@: \\ \ - && $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_$2_DEP).raw) > $$($1_$2_DEP) + && $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_$2_DEP).raw) | $(SORT) -u > $$($1_$2_DEP) endif # Create a dependency target file from the dependency file. # Solution suggested by http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/ @@ -392,12 +392,6 @@ define SetupNativeCompilationBody $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release) endif - # Pick up disabled warnings, if possible on this platform. - ifneq ($(DISABLE_WARNING_PREFIX),) - $1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE))) - $1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE))) - endif - ifeq ($$($1_DEBUG_SYMBOLS), true) ifeq ($(ENABLE_DEBUG_SYMBOLS), true) ifdef OPENJDK @@ -415,6 +409,9 @@ define SetupNativeCompilationBody endif endif + # If no C++ flags are explicitly set, default to using the C flags. + # After that, we can set additional C++ flags that should not interfere + # with the mechanism for copying the C flags by default. ifeq ($$($1_CXXFLAGS),) $1_CXXFLAGS:=$$($1_CFLAGS) endif @@ -427,6 +424,12 @@ define SetupNativeCompilationBody $1_EXTRA_CXXFLAGS += $$(CXX_FLAG_REORDER) endif + # Pick up disabled warnings, if possible on this platform. + ifneq ($(DISABLE_WARNING_PREFIX),) + $1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE))) + $1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE))) + endif + ifeq (NONE, $$($1_OPTIMIZATION)) $1_EXTRA_CFLAGS += $(C_O_FLAG_NONE) $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NONE) diff --git a/test/lib/sun/hotspot/WhiteBox.java b/test/lib/sun/hotspot/WhiteBox.java index b19845392ff..fb95cc4a106 100644 --- a/test/lib/sun/hotspot/WhiteBox.java +++ b/test/lib/sun/hotspot/WhiteBox.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,6 +27,7 @@ package sun.hotspot; import java.lang.reflect.Executable; import java.util.Arrays; import java.util.List; +import java.util.function.BiFunction; import java.util.function.Function; import java.util.stream.Stream; import java.security.BasicPermission; @@ -250,6 +251,23 @@ public class WhiteBox { } return offset; } + public native Boolean getMethodBooleanOption(Executable method, String name); + public native Long getMethodIntxOption(Executable method, String name); + public native Long getMethodUintxOption(Executable method, String name); + public native Double getMethodDoubleOption(Executable method, String name); + public native String getMethodStringOption(Executable method, String name); + private final List> methodOptionGetters + = Arrays.asList(this::getMethodBooleanOption, this::getMethodIntxOption, + this::getMethodUintxOption, this::getMethodDoubleOption, + this::getMethodStringOption); + + public Object getMethodOption(Executable method, String name) { + return methodOptionGetters.stream() + .map(f -> f.apply(method, name)) + .filter(x -> x != null) + .findAny() + .orElse(null); + } // Safepoint Checking public native void assertMatchingSafepointCalls(boolean mutexSafepointValue, boolean attemptedNoSafepointValue);