--- a/.hgtags-top-repo Tue Oct 06 13:20:21 2015 -0700
+++ b/.hgtags-top-repo Wed Jul 05 20:52:05 2017 +0200
@@ -326,3 +326,4 @@
b8afcf91331d78626a583ec1b63164468d6f4181 jdk9-b81
42b56d1f418523ecb61a49d7493302c80c8009cc jdk9-b82
ce5c14d97d95084504c32b9320cb33cce4235588 jdk9-b83
+1c8134475511ffe6726677e1418a89a7a45e92d6 jdk9-b84
--- a/common/autoconf/compare.sh.in Tue Oct 06 13:20:21 2015 -0700
+++ b/common/autoconf/compare.sh.in Wed Jul 05 20:52:05 2017 +0200
@@ -62,7 +62,7 @@
export SED="@SED@"
export SORT="@SORT@"
export STAT="@STAT@"
-export STRIP="@POST_STRIP_CMD@"
+export STRIP="@STRIP@ @STRIPFLAGS@"
export TEE="@TEE@"
export UNIQ="@UNIQ@"
export UNPACK200="@FIXPATH@ @BOOT_JDK@/bin/unpack200"
--- a/common/autoconf/configure.ac Tue Oct 06 13:20:21 2015 -0700
+++ b/common/autoconf/configure.ac Wed Jul 05 20:52:05 2017 +0200
@@ -165,6 +165,11 @@
# First determine the toolchain type (compiler family)
TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE
+# User supplied flags should be used when configure detects compilers
+FLAGS_SETUP_USER_SUPPLIED_FLAGS
+# The sysroot cflags are needed for configure to be able to run the compilers
+FLAGS_SETUP_SYSROOT_FLAGS
+
# Then detect the actual binaries needed
TOOLCHAIN_PRE_DETECTION
TOOLCHAIN_DETECT_TOOLCHAIN_CORE
--- a/common/autoconf/flags.m4 Tue Oct 06 13:20:21 2015 -0700
+++ b/common/autoconf/flags.m4 Wed Jul 05 20:52:05 2017 +0200
@@ -23,6 +23,100 @@
# questions.
#
+# Reset the global CFLAGS/LDFLAGS variables and initialize them with the
+# corresponding configure arguments instead
+AC_DEFUN_ONCE([FLAGS_SETUP_USER_SUPPLIED_FLAGS],
+[
+ if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
+ AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags])
+ fi
+
+ if test "x$CXXFLAGS" != "x${ADDED_CXXFLAGS}"; then
+ AC_MSG_WARN([Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags])
+ fi
+
+ if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
+ AC_MSG_WARN([Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags])
+ fi
+
+ AC_ARG_WITH(extra-cflags, [AS_HELP_STRING([--with-extra-cflags],
+ [extra flags to be used when compiling jdk c-files])])
+
+ AC_ARG_WITH(extra-cxxflags, [AS_HELP_STRING([--with-extra-cxxflags],
+ [extra flags to be used when compiling jdk c++-files])])
+
+ AC_ARG_WITH(extra-ldflags, [AS_HELP_STRING([--with-extra-ldflags],
+ [extra flags to be used when linking jdk])])
+
+ EXTRA_CFLAGS="$with_extra_cflags"
+ EXTRA_CXXFLAGS="$with_extra_cxxflags"
+ EXTRA_LDFLAGS="$with_extra_ldflags"
+
+ # Hotspot needs these set in their legacy form
+ LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $EXTRA_CFLAGS"
+ LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $EXTRA_CXXFLAGS"
+ LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $EXTRA_LDFLAGS"
+
+ AC_SUBST(LEGACY_EXTRA_CFLAGS)
+ AC_SUBST(LEGACY_EXTRA_CXXFLAGS)
+ AC_SUBST(LEGACY_EXTRA_LDFLAGS)
+
+ # The global CFLAGS and LDLAGS variables are used by configure tests and
+ # should include the extra parameters
+ CFLAGS="$EXTRA_CFLAGS"
+ CXXFLAGS="$EXTRA_CXXFLAGS"
+ LDFLAGS="$EXTRA_LDFLAGS"
+ CPPFLAGS=""
+])
+
+# Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
+# that configure can use them while detecting compilers.
+# TOOLCHAIN_TYPE is available here.
+AC_DEFUN_ONCE([FLAGS_SETUP_SYSROOT_FLAGS],
+[
+ if test "x$SYSROOT" != "x"; then
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ if test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ # Solaris Studio does not have a concept of sysroot. Instead we must
+ # make sure the default include and lib dirs are appended to each
+ # compile and link command line.
+ SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
+ SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -L$SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -L$SYSROOT/usr/ccs/lib$OPENJDK_TARGET_CPU_ISADIR"
+ fi
+ elif test "x$TOOLCHAIN_TYPE" = xgcc; then
+ SYSROOT_CFLAGS="--sysroot=$SYSROOT"
+ SYSROOT_LDFLAGS="--sysroot=$SYSROOT"
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ SYSROOT_CFLAGS="-isysroot $SYSROOT"
+ SYSROOT_LDFLAGS="-isysroot $SYSROOT"
+ fi
+ # Propagate the sysroot args to hotspot
+ LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $SYSROOT_CFLAGS"
+ LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $SYSROOT_CFLAGS"
+ LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $SYSROOT_LDFLAGS"
+ # The global CFLAGS and LDFLAGS variables need these for configure to function
+ CFLAGS="$CFLAGS $SYSROOT_CFLAGS"
+ CPPFLAGS="$CPPFLAGS $SYSROOT_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $SYSROOT_CFLAGS"
+ LDFLAGS="$LDFLAGS $SYSROOT_LDFLAGS"
+ fi
+
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ # We also need -iframework<path>/System/Library/Frameworks
+ SYSROOT_CFLAGS="$SYSROOT_CFLAGS -iframework $SYSROOT/System/Library/Frameworks"
+ SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -iframework $SYSROOT/System/Library/Frameworks"
+ # These always need to be set, or we can't find the frameworks embedded in JavaVM.framework
+ # set this here so it doesn't have to be peppered throughout the forest
+ SYSROOT_CFLAGS="$SYSROOT_CFLAGS -F $SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
+ SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -F $SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
+ fi
+
+ AC_SUBST(SYSROOT_CFLAGS)
+ AC_SUBST(SYSROOT_LDFLAGS)
+])
+
AC_DEFUN_ONCE([FLAGS_SETUP_INIT_FLAGS],
[
# Option used to tell the compiler whether to create 32- or 64-bit executables
@@ -60,10 +154,7 @@
STRIPFLAGS="-X32_64"
fi
- if test "x$OPENJDK_TARGET_OS" != xwindows; then
- POST_STRIP_CMD="$STRIP $STRIPFLAGS"
- fi
- AC_SUBST(POST_STRIP_CMD)
+ AC_SUBST(STRIPFLAGS)
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
CC_OUT_OPTION=-Fo
@@ -113,44 +204,6 @@
# silence copyright notice and other headers.
COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
fi
-
- if test "x$SYSROOT" != "x"; then
- if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- if test "x$OPENJDK_TARGET_OS" = xsolaris; then
- # Solaris Studio does not have a concept of sysroot. Instead we must
- # make sure the default include and lib dirs are appended to each
- # compile and link command line.
- SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
- SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
- -L$SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR \
- -L$SYSROOT/usr/ccs/lib$OPENJDK_TARGET_CPU_ISADIR"
- fi
- elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
- # Apple only wants -isysroot <path>, but we also need -iframework<path>/System/Library/Frameworks
- SYSROOT_CFLAGS="-isysroot \"$SYSROOT\" -iframework\"$SYSROOT/System/Library/Frameworks\""
- SYSROOT_LDFLAGS=$SYSROOT_CFLAGS
- elif test "x$TOOLCHAIN_TYPE" = xgcc; then
- SYSROOT_CFLAGS="--sysroot=$SYSROOT"
- SYSROOT_LDFLAGS="--sysroot=$SYSROOT"
- elif test "x$TOOLCHAIN_TYPE" = xclang; then
- SYSROOT_CFLAGS="-isysroot \"$SYSROOT\""
- SYSROOT_LDFLAGS="-isysroot \"$SYSROOT\""
- fi
- # Propagate the sysroot args to hotspot
- LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $SYSROOT_CFLAGS"
- LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $SYSROOT_CFLAGS"
- LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $SYSROOT_LDFLAGS"
- fi
-
- # These always need to be set, or we can't find the frameworks embedded in JavaVM.framework
- # set this here so it doesn't have to be peppered throughout the forest
- if test "x$OPENJDK_TARGET_OS" = xmacosx; then
- SYSROOT_CFLAGS="$SYSROOT_CFLAGS -F\"$SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks\""
- SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -F\"$SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks\""
- fi
-
- AC_SUBST(SYSROOT_CFLAGS)
- AC_SUBST(SYSROOT_LDFLAGS)
])
AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
@@ -480,39 +533,9 @@
CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
fi
- if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
- AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags])
- fi
-
- if test "x$CXXFLAGS" != "x${ADDED_CXXFLAGS}"; then
- AC_MSG_WARN([Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags])
- fi
-
- if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
- AC_MSG_WARN([Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags])
- fi
-
- AC_ARG_WITH(extra-cflags, [AS_HELP_STRING([--with-extra-cflags],
- [extra flags to be used when compiling jdk c-files])])
-
- AC_ARG_WITH(extra-cxxflags, [AS_HELP_STRING([--with-extra-cxxflags],
- [extra flags to be used when compiling jdk c++-files])])
-
- AC_ARG_WITH(extra-ldflags, [AS_HELP_STRING([--with-extra-ldflags],
- [extra flags to be used when linking jdk])])
-
- CFLAGS_JDK="${CFLAGS_JDK} $with_extra_cflags"
- CXXFLAGS_JDK="${CXXFLAGS_JDK} $with_extra_cxxflags"
- LDFLAGS_JDK="${LDFLAGS_JDK} $with_extra_ldflags"
-
- # Hotspot needs these set in their legacy form
- LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $with_extra_cflags"
- LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $with_extra_cxxflags"
- LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $with_extra_ldflags"
-
- AC_SUBST(LEGACY_EXTRA_CFLAGS)
- AC_SUBST(LEGACY_EXTRA_CXXFLAGS)
- AC_SUBST(LEGACY_EXTRA_LDFLAGS)
+ CFLAGS_JDK="${CFLAGS_JDK} $EXTRA_CFLAGS"
+ CXXFLAGS_JDK="${CXXFLAGS_JDK} $EXTRA_CXXFLAGS"
+ LDFLAGS_JDK="${LDFLAGS_JDK} $EXTRA_LDFLAGS"
###############################################################################
#
--- a/common/autoconf/generated-configure.sh Tue Oct 06 13:20:21 2015 -0700
+++ b/common/autoconf/generated-configure.sh Wed Jul 05 20:52:05 2017 +0200
@@ -705,9 +705,6 @@
CFLAGS_JDKEXE
CFLAGS_JDKLIB
MACOSX_VERSION_MIN
-LEGACY_EXTRA_LDFLAGS
-LEGACY_EXTRA_CXXFLAGS
-LEGACY_EXTRA_CFLAGS
CXX_O_FLAG_NONE
CXX_O_FLAG_DEBUG
CXX_O_FLAG_NORM
@@ -728,14 +725,12 @@
SET_EXECUTABLE_ORIGIN
CXX_FLAG_REORDER
C_FLAG_REORDER
-SYSROOT_LDFLAGS
-SYSROOT_CFLAGS
RC_FLAGS
AR_OUT_OPTION
LD_OUT_OPTION
EXE_OUT_OPTION
CC_OUT_OPTION
-POST_STRIP_CMD
+STRIPFLAGS
ARFLAGS
COMPILER_TARGET_BITS_FLAG
JT_HOME
@@ -747,6 +742,8 @@
HOTSPOT_CXX
HOTSPOT_RC
HOTSPOT_MT
+BUILD_SYSROOT_LDFLAGS
+BUILD_SYSROOT_CFLAGS
BUILD_LD
BUILD_CXX
BUILD_CC
@@ -793,6 +790,11 @@
VS_INCLUDE
VS_PATH
CYGWIN_LINK
+SYSROOT_LDFLAGS
+SYSROOT_CFLAGS
+LEGACY_EXTRA_LDFLAGS
+LEGACY_EXTRA_CXXFLAGS
+LEGACY_EXTRA_CFLAGS
EXE_SUFFIX
OBJ_SUFFIX
STATIC_LIBRARY
@@ -1078,11 +1080,11 @@
with_override_jdk
with_import_hotspot
with_toolchain_type
-with_toolchain_version
-with_jtreg
with_extra_cflags
with_extra_cxxflags
with_extra_ldflags
+with_toolchain_version
+with_jtreg
enable_warnings_as_errors
enable_debug_symbols
enable_zip_debug_info
@@ -1937,14 +1939,14 @@
source
--with-toolchain-type the toolchain type (or family) to use, use '--help'
to show possible values [platform dependent]
+ --with-extra-cflags extra flags to be used when compiling jdk c-files
+ --with-extra-cxxflags extra flags to be used when compiling jdk c++-files
+ --with-extra-ldflags extra flags to be used when linking jdk
--with-toolchain-version
the version of the toolchain to look for, use
'--help' to show possible values [platform
dependent]
--with-jtreg Regression Test Harness [probed]
- --with-extra-cflags extra flags to be used when compiling jdk c-files
- --with-extra-cxxflags extra flags to be used when compiling jdk c++-files
- --with-extra-ldflags extra flags to be used when linking jdk
--with-x use the X Window System
--with-cups specify prefix directory for the cups package
(expecting the headers under PATH/include)
@@ -3767,6 +3769,15 @@
# questions.
#
+# Reset the global CFLAGS/LDFLAGS variables and initialize them with the
+# corresponding configure arguments instead
+
+
+# Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
+# that configure can use them while detecting compilers.
+# TOOLCHAIN_TYPE is available here.
+
+
@@ -3886,6 +3897,8 @@
apt_help() {
case $1 in
+ reduced)
+ PKGHANDLER_COMMAND="sudo apt-get install gcc-multilib g++-multilib" ;;
devkit)
PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
openjdk)
@@ -4362,7 +4375,7 @@
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1442820958
+DATE_WHEN_GENERATED=1444077934
###############################################################################
#
@@ -26825,6 +26838,109 @@
fi
+# User supplied flags should be used when configure detects compilers
+
+ if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&5
+$as_echo "$as_me: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&2;}
+ fi
+
+ if test "x$CXXFLAGS" != "x${ADDED_CXXFLAGS}"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags" >&5
+$as_echo "$as_me: WARNING: Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags" >&2;}
+ fi
+
+ if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags" >&5
+$as_echo "$as_me: WARNING: Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags" >&2;}
+ fi
+
+
+# Check whether --with-extra-cflags was given.
+if test "${with_extra_cflags+set}" = set; then :
+ withval=$with_extra_cflags;
+fi
+
+
+
+# Check whether --with-extra-cxxflags was given.
+if test "${with_extra_cxxflags+set}" = set; then :
+ withval=$with_extra_cxxflags;
+fi
+
+
+
+# Check whether --with-extra-ldflags was given.
+if test "${with_extra_ldflags+set}" = set; then :
+ withval=$with_extra_ldflags;
+fi
+
+
+ EXTRA_CFLAGS="$with_extra_cflags"
+ EXTRA_CXXFLAGS="$with_extra_cxxflags"
+ EXTRA_LDFLAGS="$with_extra_ldflags"
+
+ # Hotspot needs these set in their legacy form
+ LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $EXTRA_CFLAGS"
+ LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $EXTRA_CXXFLAGS"
+ LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $EXTRA_LDFLAGS"
+
+
+
+
+
+ # The global CFLAGS and LDLAGS variables are used by configure tests and
+ # should include the extra parameters
+ CFLAGS="$EXTRA_CFLAGS"
+ CXXFLAGS="$EXTRA_CXXFLAGS"
+ LDFLAGS="$EXTRA_LDFLAGS"
+ CPPFLAGS=""
+
+# The sysroot cflags are needed for configure to be able to run the compilers
+
+ if test "x$SYSROOT" != "x"; then
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ if test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ # Solaris Studio does not have a concept of sysroot. Instead we must
+ # make sure the default include and lib dirs are appended to each
+ # compile and link command line.
+ SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
+ SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -L$SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -L$SYSROOT/usr/ccs/lib$OPENJDK_TARGET_CPU_ISADIR"
+ fi
+ elif test "x$TOOLCHAIN_TYPE" = xgcc; then
+ SYSROOT_CFLAGS="--sysroot=$SYSROOT"
+ SYSROOT_LDFLAGS="--sysroot=$SYSROOT"
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ SYSROOT_CFLAGS="-isysroot $SYSROOT"
+ SYSROOT_LDFLAGS="-isysroot $SYSROOT"
+ fi
+ # Propagate the sysroot args to hotspot
+ LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $SYSROOT_CFLAGS"
+ LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $SYSROOT_CFLAGS"
+ LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $SYSROOT_LDFLAGS"
+ # The global CFLAGS and LDFLAGS variables need these for configure to function
+ CFLAGS="$CFLAGS $SYSROOT_CFLAGS"
+ CPPFLAGS="$CPPFLAGS $SYSROOT_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $SYSROOT_CFLAGS"
+ LDFLAGS="$LDFLAGS $SYSROOT_LDFLAGS"
+ fi
+
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ # We also need -iframework<path>/System/Library/Frameworks
+ SYSROOT_CFLAGS="$SYSROOT_CFLAGS -iframework $SYSROOT/System/Library/Frameworks"
+ SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -iframework $SYSROOT/System/Library/Frameworks"
+ # These always need to be set, or we can't find the frameworks embedded in JavaVM.framework
+ # set this here so it doesn't have to be peppered throughout the forest
+ SYSROOT_CFLAGS="$SYSROOT_CFLAGS -F $SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
+ SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -F $SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
+ fi
+
+
+
+
+
# Then detect the actual binaries needed
# FIXME: Is this needed?
@@ -40555,13 +40671,19 @@
fi
fi
+ BUILD_SYSROOT_CFLAGS=""
+ BUILD_SYSROOT_LDFLAGS=""
else
# If we are not cross compiling, use the normal target compilers for
# building the build platform executables.
BUILD_CC="$CC"
BUILD_CXX="$CXX"
BUILD_LD="$LD"
- fi
+ BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
+ BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
+ fi
+
+
@@ -41252,9 +41374,6 @@
STRIPFLAGS="-X32_64"
fi
- if test "x$OPENJDK_TARGET_OS" != xwindows; then
- POST_STRIP_CMD="$STRIP $STRIPFLAGS"
- fi
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
@@ -41306,44 +41425,6 @@
COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
fi
- if test "x$SYSROOT" != "x"; then
- if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- if test "x$OPENJDK_TARGET_OS" = xsolaris; then
- # Solaris Studio does not have a concept of sysroot. Instead we must
- # make sure the default include and lib dirs are appended to each
- # compile and link command line.
- SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
- SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
- -L$SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR \
- -L$SYSROOT/usr/ccs/lib$OPENJDK_TARGET_CPU_ISADIR"
- fi
- elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
- # Apple only wants -isysroot <path>, but we also need -iframework<path>/System/Library/Frameworks
- SYSROOT_CFLAGS="-isysroot \"$SYSROOT\" -iframework\"$SYSROOT/System/Library/Frameworks\""
- SYSROOT_LDFLAGS=$SYSROOT_CFLAGS
- elif test "x$TOOLCHAIN_TYPE" = xgcc; then
- SYSROOT_CFLAGS="--sysroot=$SYSROOT"
- SYSROOT_LDFLAGS="--sysroot=$SYSROOT"
- elif test "x$TOOLCHAIN_TYPE" = xclang; then
- SYSROOT_CFLAGS="-isysroot \"$SYSROOT\""
- SYSROOT_LDFLAGS="-isysroot \"$SYSROOT\""
- fi
- # Propagate the sysroot args to hotspot
- LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $SYSROOT_CFLAGS"
- LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $SYSROOT_CFLAGS"
- LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $SYSROOT_LDFLAGS"
- fi
-
- # These always need to be set, or we can't find the frameworks embedded in JavaVM.framework
- # set this here so it doesn't have to be peppered throughout the forest
- if test "x$OPENJDK_TARGET_OS" = xmacosx; then
- SYSROOT_CFLAGS="$SYSROOT_CFLAGS -F\"$SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks\""
- SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -F\"$SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks\""
- fi
-
-
-
-
# FIXME: Currently we must test this after toolchain but before flags. Fix!
@@ -41543,8 +41624,38 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to compile stdio.h. This likely implies missing compile dependencies." >&5
$as_echo "$as_me: Failed to compile stdio.h. This likely implies missing compile dependencies." >&6;}
if test "x$COMPILE_TYPE" = xreduced; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: You are doing a reduced build. Check that you have 32-bit libraries installed." >&5
-$as_echo "$as_me: You are doing a reduced build. Check that you have 32-bit libraries installed." >&6;}
+
+ # Print a helpful message on how to acquire the necessary build dependency.
+ # reduced is the help tag: freetype, cups, pulse, alsa etc
+ MISSING_DEPENDENCY=reduced
+
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ cygwin_help $MISSING_DEPENDENCY
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ msys_help $MISSING_DEPENDENCY
+ else
+ PKGHANDLER_COMMAND=
+
+ case $PKGHANDLER in
+ apt-get)
+ apt_help $MISSING_DEPENDENCY ;;
+ yum)
+ yum_help $MISSING_DEPENDENCY ;;
+ port)
+ port_help $MISSING_DEPENDENCY ;;
+ pkgutil)
+ pkgutil_help $MISSING_DEPENDENCY ;;
+ pkgadd)
+ pkgadd_help $MISSING_DEPENDENCY ;;
+ esac
+
+ if test "x$PKGHANDLER_COMMAND" != x; then
+ HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
+ fi
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG" >&5
+$as_echo "$as_me: You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG" >&6;}
elif test "x$COMPILE_TYPE" = xcross; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: You are doing a cross-compilation. Check that you have all target platform libraries installed." >&5
$as_echo "$as_me: You are doing a cross-compilation. Check that you have all target platform libraries installed." >&6;}
@@ -41603,8 +41714,8 @@
# Let's try to implicitely set the compilers target architecture and retry the test
{ $as_echo "$as_me:${as_lineno-$LINENO}: The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)." >&5
$as_echo "$as_me: The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)." >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: I'll retry after setting the platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" >&5
-$as_echo "$as_me: I'll retry after setting the platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Retrying with platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" >&5
+$as_echo "$as_me: Retrying with platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" >&6;}
# When we add flags to the "official" CFLAGS etc, we need to
# keep track of these additions in ADDED_CFLAGS etc. These
@@ -41667,7 +41778,46 @@
TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p`
if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then
- as_fn_error $? "The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)" "$LINENO" 5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)" >&5
+$as_echo "$as_me: The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)" >&6;}
+ if test "x$COMPILE_TYPE" = xreduced; then
+
+ # Print a helpful message on how to acquire the necessary build dependency.
+ # reduced is the help tag: freetype, cups, pulse, alsa etc
+ MISSING_DEPENDENCY=reduced
+
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ cygwin_help $MISSING_DEPENDENCY
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ msys_help $MISSING_DEPENDENCY
+ else
+ PKGHANDLER_COMMAND=
+
+ case $PKGHANDLER in
+ apt-get)
+ apt_help $MISSING_DEPENDENCY ;;
+ yum)
+ yum_help $MISSING_DEPENDENCY ;;
+ port)
+ port_help $MISSING_DEPENDENCY ;;
+ pkgutil)
+ pkgutil_help $MISSING_DEPENDENCY ;;
+ pkgadd)
+ pkgadd_help $MISSING_DEPENDENCY ;;
+ esac
+
+ if test "x$PKGHANDLER_COMMAND" != x; then
+ HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
+ fi
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG" >&5
+$as_echo "$as_me: You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG" >&6;}
+ elif test "x$COMPILE_TYPE" = xcross; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: You are doing a cross-compilation. Check that you have all target platform libraries installed." >&5
+$as_echo "$as_me: You are doing a cross-compilation. Check that you have all target platform libraries installed." >&6;}
+ fi
+ as_fn_error $? "Cannot continue." "$LINENO" 5
fi
fi
fi
@@ -42267,54 +42417,9 @@
CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
fi
- if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&5
-$as_echo "$as_me: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&2;}
- fi
-
- if test "x$CXXFLAGS" != "x${ADDED_CXXFLAGS}"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags" >&5
-$as_echo "$as_me: WARNING: Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags" >&2;}
- fi
-
- if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags" >&5
-$as_echo "$as_me: WARNING: Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags" >&2;}
- fi
-
-
-# Check whether --with-extra-cflags was given.
-if test "${with_extra_cflags+set}" = set; then :
- withval=$with_extra_cflags;
-fi
-
-
-
-# Check whether --with-extra-cxxflags was given.
-if test "${with_extra_cxxflags+set}" = set; then :
- withval=$with_extra_cxxflags;
-fi
-
-
-
-# Check whether --with-extra-ldflags was given.
-if test "${with_extra_ldflags+set}" = set; then :
- withval=$with_extra_ldflags;
-fi
-
-
- CFLAGS_JDK="${CFLAGS_JDK} $with_extra_cflags"
- CXXFLAGS_JDK="${CXXFLAGS_JDK} $with_extra_cxxflags"
- LDFLAGS_JDK="${LDFLAGS_JDK} $with_extra_ldflags"
-
- # Hotspot needs these set in their legacy form
- LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $with_extra_cflags"
- LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $with_extra_cxxflags"
- LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $with_extra_ldflags"
-
-
-
-
+ CFLAGS_JDK="${CFLAGS_JDK} $EXTRA_CFLAGS"
+ CXXFLAGS_JDK="${CXXFLAGS_JDK} $EXTRA_CXXFLAGS"
+ LDFLAGS_JDK="${LDFLAGS_JDK} $EXTRA_LDFLAGS"
###############################################################################
#
--- a/common/autoconf/help.m4 Tue Oct 06 13:20:21 2015 -0700
+++ b/common/autoconf/help.m4 Wed Jul 05 20:52:05 2017 +0200
@@ -97,6 +97,8 @@
apt_help() {
case $1 in
+ reduced)
+ PKGHANDLER_COMMAND="sudo apt-get install gcc-multilib g++-multilib" ;;
devkit)
PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
openjdk)
--- a/common/autoconf/hotspot-spec.gmk.in Tue Oct 06 13:20:21 2015 -0700
+++ b/common/autoconf/hotspot-spec.gmk.in Wed Jul 05 20:52:05 2017 +0200
@@ -48,8 +48,8 @@
# The HOSTCC/HOSTCXX is Hotspot terminology for the BUILD_CC/BUILD_CXX, i.e. the
# compiler that produces code that can be run on the build platform.
-HOSTCC:=@FIXPATH@ @BUILD_CC@
-HOSTCXX:=@FIXPATH@ @BUILD_CXX@
+HOSTCC:=@FIXPATH@ @BUILD_CC@ $(BUILD_SYSROOT_CFLAGS)
+HOSTCXX:=@FIXPATH@ @BUILD_CXX@ $(BUILD_SYSROOT_CFLAGS)
####################################################
#
--- a/common/autoconf/platform.m4 Tue Oct 06 13:20:21 2015 -0700
+++ b/common/autoconf/platform.m4 Wed Jul 05 20:52:05 2017 +0200
@@ -489,7 +489,8 @@
AC_CHECK_HEADERS([stdio.h], , [
AC_MSG_NOTICE([Failed to compile stdio.h. This likely implies missing compile dependencies.])
if test "x$COMPILE_TYPE" = xreduced; then
- AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed.])
+ HELP_MSG_MISSING_DEPENDENCY([reduced])
+ AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG])
elif test "x$COMPILE_TYPE" = xcross; then
AC_MSG_NOTICE([You are doing a cross-compilation. Check that you have all target platform libraries installed.])
fi
@@ -509,7 +510,7 @@
# This situation may happen on 64-bit platforms where the compiler by default only generates 32-bit objects
# Let's try to implicitely set the compilers target architecture and retry the test
AC_MSG_NOTICE([The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS).])
- AC_MSG_NOTICE([I'll retry after setting the platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}])
+ AC_MSG_NOTICE([Retrying with platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}])
PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
# We have to unset 'ac_cv_sizeof_int_p' first, otherwise AC_CHECK_SIZEOF will use the previously cached value!
@@ -524,7 +525,14 @@
TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p`
if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then
- AC_MSG_ERROR([The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)])
+ AC_MSG_NOTICE([The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)])
+ if test "x$COMPILE_TYPE" = xreduced; then
+ HELP_MSG_MISSING_DEPENDENCY([reduced])
+ AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG])
+ elif test "x$COMPILE_TYPE" = xcross; then
+ AC_MSG_NOTICE([You are doing a cross-compilation. Check that you have all target platform libraries installed.])
+ fi
+ AC_MSG_ERROR([Cannot continue.])
fi
fi
fi
--- a/common/autoconf/spec.gmk.in Tue Oct 06 13:20:21 2015 -0700
+++ b/common/autoconf/spec.gmk.in Wed Jul 05 20:52:05 2017 +0200
@@ -367,6 +367,8 @@
# build platform.
BUILD_CC:=@FIXPATH@ @BUILD_CC@
BUILD_LD:=@FIXPATH@ @BUILD_LD@
+BUILD_SYSROOT_CFLAGS:=@BUILD_SYSROOT_CFLAGS@
+BUILD_SYSROOT_LDFLAGS:=@BUILD_SYSROOT_LDFLAGS@
AS:=@FIXPATH@ @AS@
@@ -421,7 +423,7 @@
EXE_SUFFIX:=@EXE_SUFFIX@
OBJ_SUFFIX:=@OBJ_SUFFIX@
-POST_STRIP_CMD:=@POST_STRIP_CMD@
+STRIPFLAGS:=@STRIPFLAGS@
JAVA_FLAGS:=@JAVA_FLAGS@
JAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@
@@ -461,9 +463,6 @@
NEW_JAVAC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javac.Main
NEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javadoc.Main
-# The interim corba jar is needed for running rmic
-INTERIM_CORBA_JAR = $(BUILDTOOLS_OUTPUTDIR)/interim_corba.jar
-
# Base flags for RC
# Guarding this against resetting value. Legacy make files include spec multiple
# times.
--- a/common/autoconf/toolchain.m4 Tue Oct 06 13:20:21 2015 -0700
+++ b/common/autoconf/toolchain.m4 Wed Jul 05 20:52:05 2017 +0200
@@ -656,17 +656,23 @@
BASIC_FIXUP_EXECUTABLE(BUILD_CXX)
BASIC_PATH_PROGS(BUILD_LD, ld)
BASIC_FIXUP_EXECUTABLE(BUILD_LD)
+ BUILD_SYSROOT_CFLAGS=""
+ BUILD_SYSROOT_LDFLAGS=""
else
# If we are not cross compiling, use the normal target compilers for
# building the build platform executables.
BUILD_CC="$CC"
BUILD_CXX="$CXX"
BUILD_LD="$LD"
+ BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
+ BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
fi
AC_SUBST(BUILD_CC)
AC_SUBST(BUILD_CXX)
AC_SUBST(BUILD_LD)
+ AC_SUBST(BUILD_SYSROOT_CFLAGS)
+ AC_SUBST(BUILD_SYSROOT_LDFLAGS)
])
# Setup legacy variables that are still needed as alternative ways to refer to
--- a/hotspot/.hgtags Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/.hgtags Wed Jul 05 20:52:05 2017 +0200
@@ -486,3 +486,4 @@
4142c190cd5ca4fb70ec367b4f97ef936272d8ef jdk9-b81
1c453a12be3036d482abef1dd470f8aff536b6b9 jdk9-b82
3ed0df2c553a80e0e26b91a6ce08806ea17a066a jdk9-b83
+184c4328444974edd6b3b490b9d0177ace7e331c jdk9-b84
--- a/hotspot/make/aix/makefiles/mapfile-vers-debug Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/aix/makefiles/mapfile-vers-debug Wed Jul 05 20:52:05 2017 +0200
@@ -26,169 +26,6 @@
SUNWprivate_1.1 {
global:
- # JNI
- JNI_CreateJavaVM;
- JNI_GetCreatedJavaVMs;
- JNI_GetDefaultJavaVMInitArgs;
-
- # JVM
- JVM_ActiveProcessorCount;
- JVM_ArrayCopy;
- JVM_AssertionStatusDirectives;
- JVM_ClassDepth;
- JVM_ClassLoaderDepth;
- JVM_Clone;
- JVM_ConstantPoolGetClassAt;
- JVM_ConstantPoolGetClassAtIfLoaded;
- JVM_ConstantPoolGetDoubleAt;
- JVM_ConstantPoolGetFieldAt;
- JVM_ConstantPoolGetFieldAtIfLoaded;
- JVM_ConstantPoolGetFloatAt;
- JVM_ConstantPoolGetIntAt;
- JVM_ConstantPoolGetLongAt;
- JVM_ConstantPoolGetMethodAt;
- JVM_ConstantPoolGetMethodAtIfLoaded;
- JVM_ConstantPoolGetMemberRefInfoAt;
- JVM_ConstantPoolGetSize;
- JVM_ConstantPoolGetStringAt;
- JVM_ConstantPoolGetUTF8At;
- JVM_CountStackFrames;
- JVM_CurrentClassLoader;
- JVM_CurrentLoadedClass;
- JVM_CurrentThread;
- JVM_CurrentTimeMillis;
- JVM_DefineClass;
- JVM_DefineClassWithSource;
- JVM_DefineClassWithSourceCond;
- JVM_DesiredAssertionStatus;
- JVM_DoPrivileged;
- JVM_DumpAllStacks;
- JVM_DumpThreads;
- JVM_FillInStackTrace;
- JVM_FindClassFromCaller;
- JVM_FindClassFromClass;
- JVM_FindClassFromBootLoader;
- JVM_FindLibraryEntry;
- JVM_FindLoadedClass;
- JVM_FindPrimitiveClass;
- JVM_FindSignal;
- JVM_FreeMemory;
- JVM_GC;
- JVM_GetAllThreads;
- JVM_GetArrayElement;
- JVM_GetArrayLength;
- JVM_GetCPClassNameUTF;
- JVM_GetCPFieldClassNameUTF;
- JVM_GetCPFieldModifiers;
- JVM_GetCPFieldNameUTF;
- JVM_GetCPFieldSignatureUTF;
- JVM_GetCPMethodClassNameUTF;
- JVM_GetCPMethodModifiers;
- JVM_GetCPMethodNameUTF;
- JVM_GetCPMethodSignatureUTF;
- JVM_GetCallerClass;
- JVM_GetClassAccessFlags;
- JVM_GetClassAnnotations;
- JVM_GetClassCPEntriesCount;
- JVM_GetClassCPTypes;
- JVM_GetClassConstantPool;
- JVM_GetClassContext;
- JVM_GetClassDeclaredConstructors;
- JVM_GetClassDeclaredFields;
- JVM_GetClassDeclaredMethods;
- JVM_GetClassFieldsCount;
- JVM_GetClassInterfaces;
- JVM_GetClassMethodsCount;
- JVM_GetClassModifiers;
- JVM_GetClassName;
- JVM_GetClassNameUTF;
- JVM_GetClassSignature;
- JVM_GetClassSigners;
- JVM_GetClassTypeAnnotations;
- JVM_GetDeclaredClasses;
- JVM_GetDeclaringClass;
- JVM_GetSimpleBinaryName;
- JVM_GetEnclosingMethodInfo;
- JVM_GetFieldIxModifiers;
- JVM_GetFieldTypeAnnotations;
- JVM_GetInheritedAccessControlContext;
- JVM_GetInterfaceVersion;
- JVM_GetManagement;
- JVM_GetMethodIxArgsSize;
- JVM_GetMethodIxByteCode;
- JVM_GetMethodIxByteCodeLength;
- JVM_GetMethodIxExceptionIndexes;
- JVM_GetMethodIxExceptionTableEntry;
- JVM_GetMethodIxExceptionTableLength;
- JVM_GetMethodIxExceptionsCount;
- JVM_GetMethodIxLocalsCount;
- JVM_GetMethodIxMaxStack;
- JVM_GetMethodIxModifiers;
- JVM_GetMethodIxNameUTF;
- JVM_GetMethodIxSignatureUTF;
- JVM_GetMethodParameters;
- JVM_GetMethodTypeAnnotations;
- JVM_GetNanoTimeAdjustment;
- JVM_GetPrimitiveArrayElement;
- JVM_GetProtectionDomain;
- JVM_GetStackAccessControlContext;
- JVM_GetStackTraceDepth;
- JVM_GetStackTraceElement;
- JVM_GetSystemPackage;
- JVM_GetSystemPackages;
- JVM_GetTemporaryDirectory;
- JVM_GetVersionInfo;
- JVM_Halt;
- JVM_HoldsLock;
- JVM_IHashCode;
- JVM_InitAgentProperties;
- JVM_InitProperties;
- JVM_InternString;
- JVM_Interrupt;
- JVM_InvokeMethod;
- JVM_IsArrayClass;
- JVM_IsConstructorIx;
- JVM_IsInterface;
- JVM_IsInterrupted;
- JVM_IsPrimitiveClass;
- JVM_IsSameClassPackage;
- JVM_IsSupportedJNIVersion;
- JVM_IsThreadAlive;
- JVM_IsVMGeneratedMethodIx;
- JVM_LatestUserDefinedLoader;
- JVM_LoadLibrary;
- JVM_MaxObjectInspectionAge;
- JVM_MaxMemory;
- JVM_MonitorNotify;
- JVM_MonitorNotifyAll;
- JVM_MonitorWait;
- JVM_NanoTime;
- JVM_NativePath;
- JVM_NewArray;
- JVM_NewInstanceFromConstructor;
- JVM_NewMultiArray;
- JVM_RaiseSignal;
- JVM_RawMonitorCreate;
- JVM_RawMonitorDestroy;
- JVM_RawMonitorEnter;
- JVM_RawMonitorExit;
- JVM_RegisterSignal;
- JVM_ReleaseUTF;
- JVM_ResumeThread;
- JVM_SetArrayElement;
- JVM_SetClassSigners;
- JVM_SetNativeThreadName;
- JVM_SetPrimitiveArrayElement;
- JVM_SetProtectionDomain;
- JVM_SetThreadPriority;
- JVM_Sleep;
- JVM_StartThread;
- JVM_StopThread;
- JVM_SuspendThread;
- JVM_SupportsCX8;
- JVM_TotalMemory;
- JVM_UnloadLibrary;
- JVM_Yield;
JVM_handle_linux_signal;
# debug JVM
--- a/hotspot/make/aix/makefiles/mapfile-vers-product Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/aix/makefiles/mapfile-vers-product Wed Jul 05 20:52:05 2017 +0200
@@ -26,167 +26,6 @@
SUNWprivate_1.1 {
global:
- # JNI
- JNI_CreateJavaVM;
- JNI_GetCreatedJavaVMs;
- JNI_GetDefaultJavaVMInitArgs;
-
- # JVM
- JVM_ActiveProcessorCount;
- JVM_ArrayCopy;
- JVM_AssertionStatusDirectives;
- JVM_ClassDepth;
- JVM_ClassLoaderDepth;
- JVM_Clone;
- JVM_ConstantPoolGetClassAt;
- JVM_ConstantPoolGetClassAtIfLoaded;
- JVM_ConstantPoolGetDoubleAt;
- JVM_ConstantPoolGetFieldAt;
- JVM_ConstantPoolGetFieldAtIfLoaded;
- JVM_ConstantPoolGetFloatAt;
- JVM_ConstantPoolGetIntAt;
- JVM_ConstantPoolGetLongAt;
- JVM_ConstantPoolGetMethodAt;
- JVM_ConstantPoolGetMethodAtIfLoaded;
- JVM_ConstantPoolGetMemberRefInfoAt;
- JVM_ConstantPoolGetSize;
- JVM_ConstantPoolGetStringAt;
- JVM_ConstantPoolGetUTF8At;
- JVM_CountStackFrames;
- JVM_CurrentClassLoader;
- JVM_CurrentLoadedClass;
- JVM_CurrentThread;
- JVM_CurrentTimeMillis;
- JVM_DefineClass;
- JVM_DefineClassWithSource;
- JVM_DefineClassWithSourceCond;
- JVM_DesiredAssertionStatus;
- JVM_DoPrivileged;
- JVM_DumpAllStacks;
- JVM_DumpThreads;
- JVM_FillInStackTrace;
- JVM_FindClassFromCaller;
- JVM_FindClassFromClass;
- JVM_FindClassFromBootLoader;
- JVM_FindLibraryEntry;
- JVM_FindLoadedClass;
- JVM_FindPrimitiveClass;
- JVM_FindSignal;
- JVM_FreeMemory;
- JVM_GC;
- JVM_GetAllThreads;
- JVM_GetArrayElement;
- JVM_GetArrayLength;
- JVM_GetCPClassNameUTF;
- JVM_GetCPFieldClassNameUTF;
- JVM_GetCPFieldModifiers;
- JVM_GetCPFieldNameUTF;
- JVM_GetCPFieldSignatureUTF;
- JVM_GetCPMethodClassNameUTF;
- JVM_GetCPMethodModifiers;
- JVM_GetCPMethodNameUTF;
- JVM_GetCPMethodSignatureUTF;
- JVM_GetCallerClass;
- JVM_GetClassAccessFlags;
- JVM_GetClassAnnotations;
- JVM_GetClassCPEntriesCount;
- JVM_GetClassCPTypes;
- JVM_GetClassConstantPool;
- JVM_GetClassContext;
- JVM_GetClassDeclaredConstructors;
- JVM_GetClassDeclaredFields;
- JVM_GetClassDeclaredMethods;
- JVM_GetClassFieldsCount;
- JVM_GetClassInterfaces;
- JVM_GetClassMethodsCount;
- JVM_GetClassModifiers;
- JVM_GetClassName;
- JVM_GetClassNameUTF;
- JVM_GetClassSignature;
- JVM_GetClassSigners;
- JVM_GetClassTypeAnnotations;
- JVM_GetDeclaredClasses;
- JVM_GetDeclaringClass;
- JVM_GetSimpleBinaryName;
- JVM_GetEnclosingMethodInfo;
- JVM_GetFieldIxModifiers;
- JVM_GetInheritedAccessControlContext;
- JVM_GetInterfaceVersion;
- JVM_GetManagement;
- JVM_GetMethodIxArgsSize;
- JVM_GetMethodIxByteCode;
- JVM_GetMethodIxByteCodeLength;
- JVM_GetMethodIxExceptionIndexes;
- JVM_GetMethodIxExceptionTableEntry;
- JVM_GetMethodIxExceptionTableLength;
- JVM_GetMethodIxExceptionsCount;
- JVM_GetMethodIxLocalsCount;
- JVM_GetMethodIxMaxStack;
- JVM_GetMethodIxModifiers;
- JVM_GetMethodIxNameUTF;
- JVM_GetMethodIxSignatureUTF;
- JVM_GetMethodParameters;
- JVM_GetNanoTimeAdjustment;
- JVM_GetPrimitiveArrayElement;
- JVM_GetProtectionDomain;
- JVM_GetStackAccessControlContext;
- JVM_GetStackTraceDepth;
- JVM_GetStackTraceElement;
- JVM_GetSystemPackage;
- JVM_GetSystemPackages;
- JVM_GetTemporaryDirectory;
- JVM_GetVersionInfo;
- JVM_Halt;
- JVM_HoldsLock;
- JVM_IHashCode;
- JVM_InitAgentProperties;
- JVM_InitProperties;
- JVM_InternString;
- JVM_Interrupt;
- JVM_InvokeMethod;
- JVM_IsArrayClass;
- JVM_IsConstructorIx;
- JVM_IsInterface;
- JVM_IsInterrupted;
- JVM_IsPrimitiveClass;
- JVM_IsSameClassPackage;
- JVM_IsSupportedJNIVersion;
- JVM_IsThreadAlive;
- JVM_IsVMGeneratedMethodIx;
- JVM_LatestUserDefinedLoader;
- JVM_LoadLibrary;
- JVM_MaxObjectInspectionAge;
- JVM_MaxMemory;
- JVM_MonitorNotify;
- JVM_MonitorNotifyAll;
- JVM_MonitorWait;
- JVM_NanoTime;
- JVM_NativePath;
- JVM_NewArray;
- JVM_NewInstanceFromConstructor;
- JVM_NewMultiArray;
- JVM_RaiseSignal;
- JVM_RawMonitorCreate;
- JVM_RawMonitorDestroy;
- JVM_RawMonitorEnter;
- JVM_RawMonitorExit;
- JVM_RegisterSignal;
- JVM_ReleaseUTF;
- JVM_ResumeThread;
- JVM_SetArrayElement;
- JVM_SetClassSigners;
- JVM_SetNativeThreadName;
- JVM_SetPrimitiveArrayElement;
- JVM_SetProtectionDomain;
- JVM_SetThreadPriority;
- JVM_Sleep;
- JVM_StartThread;
- JVM_StopThread;
- JVM_SuspendThread;
- JVM_SupportsCX8;
- JVM_TotalMemory;
- JVM_UnloadLibrary;
- JVM_Yield;
JVM_handle_linux_signal;
# miscellaneous functions
--- a/hotspot/make/aix/makefiles/vm.make Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/aix/makefiles/vm.make Wed Jul 05 20:52:05 2017 +0200
@@ -220,10 +220,12 @@
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
-mapfile : $(MAPFILE) vm.def
+MAPFILE_SHARE := $(GAMMADIR)/make/share/makefiles/mapfile-vers
+
+mapfile : $(MAPFILE) $(MAPFILE_SHARE) vm.def
rm -f $@
awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \
- { system ("cat vm.def"); } \
+ { system ("cat ${MAPFILE_SHARE} vm.def"); } \
else \
{ print $$0 } \
}' > $@ < $(MAPFILE)
--- a/hotspot/make/bsd/makefiles/mapfile-vers-darwin-debug Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/bsd/makefiles/mapfile-vers-darwin-debug Wed Jul 05 20:52:05 2017 +0200
@@ -24,171 +24,9 @@
# Only used for OSX/Darwin builds
# Define public interface.
- # _JNI
- _JNI_CreateJavaVM
- _JNI_GetCreatedJavaVMs
- _JNI_GetDefaultJavaVMInitArgs
-
- # _JVM
- _JVM_ActiveProcessorCount
- _JVM_ArrayCopy
- _JVM_AssertionStatusDirectives
- _JVM_ClassDepth
- _JVM_ClassLoaderDepth
- _JVM_Clone
- _JVM_ConstantPoolGetClassAt
- _JVM_ConstantPoolGetClassAtIfLoaded
- _JVM_ConstantPoolGetDoubleAt
- _JVM_ConstantPoolGetFieldAt
- _JVM_ConstantPoolGetFieldAtIfLoaded
- _JVM_ConstantPoolGetFloatAt
- _JVM_ConstantPoolGetIntAt
- _JVM_ConstantPoolGetLongAt
- _JVM_ConstantPoolGetMethodAt
- _JVM_ConstantPoolGetMethodAtIfLoaded
- _JVM_ConstantPoolGetMemberRefInfoAt
- _JVM_ConstantPoolGetSize
- _JVM_ConstantPoolGetStringAt
- _JVM_ConstantPoolGetUTF8At
- _JVM_CountStackFrames
- _JVM_CurrentClassLoader
- _JVM_CurrentLoadedClass
- _JVM_CurrentThread
- _JVM_CurrentTimeMillis
- _JVM_DefineClass
- _JVM_DefineClassWithSource
- _JVM_DefineClassWithSourceCond
- _JVM_DesiredAssertionStatus
- _JVM_DoPrivileged
- _JVM_DumpAllStacks
- _JVM_DumpThreads
- _JVM_FillInStackTrace
- _JVM_FindClassFromCaller
- _JVM_FindClassFromClass
- _JVM_FindClassFromBootLoader
- _JVM_FindLibraryEntry
- _JVM_FindLoadedClass
- _JVM_FindPrimitiveClass
- _JVM_FindSignal
- _JVM_FreeMemory
- _JVM_GC
- _JVM_GetAllThreads
- _JVM_GetArrayElement
- _JVM_GetArrayLength
- _JVM_GetCPClassNameUTF
- _JVM_GetCPFieldClassNameUTF
- _JVM_GetCPFieldModifiers
- _JVM_GetCPFieldNameUTF
- _JVM_GetCPFieldSignatureUTF
- _JVM_GetCPMethodClassNameUTF
- _JVM_GetCPMethodModifiers
- _JVM_GetCPMethodNameUTF
- _JVM_GetCPMethodSignatureUTF
- _JVM_GetCallerClass
- _JVM_GetClassAccessFlags
- _JVM_GetClassAnnotations
- _JVM_GetClassCPEntriesCount
- _JVM_GetClassCPTypes
- _JVM_GetClassConstantPool
- _JVM_GetClassContext
- _JVM_GetClassDeclaredConstructors
- _JVM_GetClassDeclaredFields
- _JVM_GetClassDeclaredMethods
- _JVM_GetClassFieldsCount
- _JVM_GetClassInterfaces
- _JVM_GetClassMethodsCount
- _JVM_GetClassModifiers
- _JVM_GetClassName
- _JVM_GetClassNameUTF
- _JVM_GetClassSignature
- _JVM_GetClassSigners
- _JVM_GetClassTypeAnnotations
- _JVM_GetDeclaredClasses
- _JVM_GetDeclaringClass
- _JVM_GetSimpleBinaryName
- _JVM_GetEnclosingMethodInfo
- _JVM_GetFieldIxModifiers
- _JVM_GetFieldTypeAnnotations
- _JVM_GetInheritedAccessControlContext
- _JVM_GetInterfaceVersion
- _JVM_GetManagement
- _JVM_GetMethodIxArgsSize
- _JVM_GetMethodIxByteCode
- _JVM_GetMethodIxByteCodeLength
- _JVM_GetMethodIxExceptionIndexes
- _JVM_GetMethodIxExceptionTableEntry
- _JVM_GetMethodIxExceptionTableLength
- _JVM_GetMethodIxExceptionsCount
- _JVM_GetMethodIxLocalsCount
- _JVM_GetMethodIxMaxStack
- _JVM_GetMethodIxModifiers
- _JVM_GetMethodIxNameUTF
- _JVM_GetMethodIxSignatureUTF
- _JVM_GetMethodParameters
- _JVM_GetMethodTypeAnnotations
- _JVM_GetNanoTimeAdjustment
- _JVM_GetPrimitiveArrayElement
- _JVM_GetProtectionDomain
- _JVM_GetStackAccessControlContext
- _JVM_GetStackTraceDepth
- _JVM_GetStackTraceElement
- _JVM_GetSystemPackage
- _JVM_GetSystemPackages
- _JVM_GetTemporaryDirectory
- _JVM_GetVersionInfo
- _JVM_Halt
- _JVM_HoldsLock
- _JVM_IHashCode
- _JVM_InitAgentProperties
- _JVM_InitProperties
- _JVM_InternString
- _JVM_Interrupt
- _JVM_InvokeMethod
- _JVM_IsArrayClass
- _JVM_IsConstructorIx
- _JVM_IsInterface
- _JVM_IsInterrupted
- _JVM_IsPrimitiveClass
- _JVM_IsSameClassPackage
- _JVM_IsSupportedJNIVersion
- _JVM_IsThreadAlive
- _JVM_IsVMGeneratedMethodIx
- _JVM_LatestUserDefinedLoader
- _JVM_LoadLibrary
- _JVM_MaxObjectInspectionAge
- _JVM_MaxMemory
- _JVM_MonitorNotify
- _JVM_MonitorNotifyAll
- _JVM_MonitorWait
- _JVM_NanoTime
- _JVM_NativePath
- _JVM_NewArray
- _JVM_NewInstanceFromConstructor
- _JVM_NewMultiArray
- _JVM_RaiseSignal
- _JVM_RawMonitorCreate
- _JVM_RawMonitorDestroy
- _JVM_RawMonitorEnter
- _JVM_RawMonitorExit
- _JVM_RegisterSignal
- _JVM_ReleaseUTF
- _JVM_ResumeThread
- _JVM_SetArrayElement
- _JVM_SetClassSigners
- _JVM_SetNativeThreadName
- _JVM_SetPrimitiveArrayElement
- _JVM_SetThreadPriority
- _JVM_Sleep
- _JVM_StartThread
- _JVM_StopThread
- _JVM_SuspendThread
- _JVM_SupportsCX8
- _JVM_TotalMemory
- _JVM_UnloadLibrary
- _JVM_Yield
_JVM_handle_bsd_signal
- # miscellaneous functions
+ # miscellaneous functions
_jio_fprintf
_jio_printf
_jio_snprintf
--- a/hotspot/make/bsd/makefiles/mapfile-vers-darwin-product Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/bsd/makefiles/mapfile-vers-darwin-product Wed Jul 05 20:52:05 2017 +0200
@@ -24,168 +24,6 @@
# Only used for OSX/Darwin builds
# Define public interface.
- # _JNI
- _JNI_CreateJavaVM
- _JNI_GetCreatedJavaVMs
- _JNI_GetDefaultJavaVMInitArgs
-
- # _JVM
- _JVM_ActiveProcessorCount
- _JVM_ArrayCopy
- _JVM_AssertionStatusDirectives
- _JVM_ClassDepth
- _JVM_ClassLoaderDepth
- _JVM_Clone
- _JVM_ConstantPoolGetClassAt
- _JVM_ConstantPoolGetClassAtIfLoaded
- _JVM_ConstantPoolGetDoubleAt
- _JVM_ConstantPoolGetFieldAt
- _JVM_ConstantPoolGetFieldAtIfLoaded
- _JVM_ConstantPoolGetFloatAt
- _JVM_ConstantPoolGetIntAt
- _JVM_ConstantPoolGetLongAt
- _JVM_ConstantPoolGetMethodAt
- _JVM_ConstantPoolGetMethodAtIfLoaded
- _JVM_ConstantPoolGetMemberRefInfoAt
- _JVM_ConstantPoolGetSize
- _JVM_ConstantPoolGetStringAt
- _JVM_ConstantPoolGetUTF8At
- _JVM_CountStackFrames
- _JVM_CurrentClassLoader
- _JVM_CurrentLoadedClass
- _JVM_CurrentThread
- _JVM_CurrentTimeMillis
- _JVM_DefineClass
- _JVM_DefineClassWithSource
- _JVM_DefineClassWithSourceCond
- _JVM_DesiredAssertionStatus
- _JVM_DoPrivileged
- _JVM_DumpAllStacks
- _JVM_DumpThreads
- _JVM_FillInStackTrace
- _JVM_FindClassFromCaller
- _JVM_FindClassFromClass
- _JVM_FindClassFromBootLoader
- _JVM_FindLibraryEntry
- _JVM_FindLoadedClass
- _JVM_FindPrimitiveClass
- _JVM_FindSignal
- _JVM_FreeMemory
- _JVM_GC
- _JVM_GetAllThreads
- _JVM_GetArrayElement
- _JVM_GetArrayLength
- _JVM_GetCPClassNameUTF
- _JVM_GetCPFieldClassNameUTF
- _JVM_GetCPFieldModifiers
- _JVM_GetCPFieldNameUTF
- _JVM_GetCPFieldSignatureUTF
- _JVM_GetCPMethodClassNameUTF
- _JVM_GetCPMethodModifiers
- _JVM_GetCPMethodNameUTF
- _JVM_GetCPMethodSignatureUTF
- _JVM_GetCallerClass
- _JVM_GetClassAccessFlags
- _JVM_GetClassAnnotations
- _JVM_GetClassCPEntriesCount
- _JVM_GetClassCPTypes
- _JVM_GetClassConstantPool
- _JVM_GetClassContext
- _JVM_GetClassDeclaredConstructors
- _JVM_GetClassDeclaredFields
- _JVM_GetClassDeclaredMethods
- _JVM_GetClassFieldsCount
- _JVM_GetClassInterfaces
- _JVM_GetClassMethodsCount
- _JVM_GetClassModifiers
- _JVM_GetClassName
- _JVM_GetClassNameUTF
- _JVM_GetClassSignature
- _JVM_GetClassSigners
- _JVM_GetClassTypeAnnotations
- _JVM_GetDeclaredClasses
- _JVM_GetDeclaringClass
- _JVM_GetSimpleBinaryName
- _JVM_GetEnclosingMethodInfo
- _JVM_GetFieldIxModifiers
- _JVM_GetFieldTypeAnnotations
- _JVM_GetInheritedAccessControlContext
- _JVM_GetInterfaceVersion
- _JVM_GetManagement
- _JVM_GetMethodIxArgsSize
- _JVM_GetMethodIxByteCode
- _JVM_GetMethodIxByteCodeLength
- _JVM_GetMethodIxExceptionIndexes
- _JVM_GetMethodIxExceptionTableEntry
- _JVM_GetMethodIxExceptionTableLength
- _JVM_GetMethodIxExceptionsCount
- _JVM_GetMethodIxLocalsCount
- _JVM_GetMethodIxMaxStack
- _JVM_GetMethodIxModifiers
- _JVM_GetMethodIxNameUTF
- _JVM_GetMethodIxSignatureUTF
- _JVM_GetMethodParameters
- _JVM_GetMethodTypeAnnotations
- _JVM_GetNanoTimeAdjustment
- _JVM_GetPrimitiveArrayElement
- _JVM_GetProtectionDomain
- _JVM_GetStackAccessControlContext
- _JVM_GetStackTraceDepth
- _JVM_GetStackTraceElement
- _JVM_GetSystemPackage
- _JVM_GetSystemPackages
- _JVM_GetTemporaryDirectory
- _JVM_GetVersionInfo
- _JVM_Halt
- _JVM_HoldsLock
- _JVM_IHashCode
- _JVM_InitAgentProperties
- _JVM_InitProperties
- _JVM_InternString
- _JVM_Interrupt
- _JVM_InvokeMethod
- _JVM_IsArrayClass
- _JVM_IsConstructorIx
- _JVM_IsInterface
- _JVM_IsInterrupted
- _JVM_IsPrimitiveClass
- _JVM_IsSameClassPackage
- _JVM_IsSupportedJNIVersion
- _JVM_IsThreadAlive
- _JVM_IsVMGeneratedMethodIx
- _JVM_LatestUserDefinedLoader
- _JVM_LoadLibrary
- _JVM_MaxObjectInspectionAge
- _JVM_MaxMemory
- _JVM_MonitorNotify
- _JVM_MonitorNotifyAll
- _JVM_MonitorWait
- _JVM_NanoTime
- _JVM_NativePath
- _JVM_NewArray
- _JVM_NewInstanceFromConstructor
- _JVM_NewMultiArray
- _JVM_RaiseSignal
- _JVM_RawMonitorCreate
- _JVM_RawMonitorDestroy
- _JVM_RawMonitorEnter
- _JVM_RawMonitorExit
- _JVM_RegisterSignal
- _JVM_ReleaseUTF
- _JVM_ResumeThread
- _JVM_SetArrayElement
- _JVM_SetClassSigners
- _JVM_SetNativeThreadName
- _JVM_SetPrimitiveArrayElement
- _JVM_SetThreadPriority
- _JVM_Sleep
- _JVM_StartThread
- _JVM_StopThread
- _JVM_SuspendThread
- _JVM_SupportsCX8
- _JVM_TotalMemory
- _JVM_UnloadLibrary
- _JVM_Yield
_JVM_handle_bsd_signal
# miscellaneous functions
--- a/hotspot/make/bsd/makefiles/mapfile-vers-debug Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/bsd/makefiles/mapfile-vers-debug Wed Jul 05 20:52:05 2017 +0200
@@ -26,168 +26,6 @@
SUNWprivate_1.1 {
global:
- # JNI
- JNI_CreateJavaVM;
- JNI_GetCreatedJavaVMs;
- JNI_GetDefaultJavaVMInitArgs;
-
- # JVM
- JVM_ActiveProcessorCount;
- JVM_ArrayCopy;
- JVM_AssertionStatusDirectives;
- JVM_ClassDepth;
- JVM_ClassLoaderDepth;
- JVM_Clone;
- JVM_ConstantPoolGetClassAt;
- JVM_ConstantPoolGetClassAtIfLoaded;
- JVM_ConstantPoolGetDoubleAt;
- JVM_ConstantPoolGetFieldAt;
- JVM_ConstantPoolGetFieldAtIfLoaded;
- JVM_ConstantPoolGetFloatAt;
- JVM_ConstantPoolGetIntAt;
- JVM_ConstantPoolGetLongAt;
- JVM_ConstantPoolGetMethodAt;
- JVM_ConstantPoolGetMethodAtIfLoaded;
- JVM_ConstantPoolGetMemberRefInfoAt;
- JVM_ConstantPoolGetSize;
- JVM_ConstantPoolGetStringAt;
- JVM_ConstantPoolGetUTF8At;
- JVM_CountStackFrames;
- JVM_CurrentClassLoader;
- JVM_CurrentLoadedClass;
- JVM_CurrentThread;
- JVM_CurrentTimeMillis;
- JVM_DefineClass;
- JVM_DefineClassWithSource;
- JVM_DefineClassWithSourceCond;
- JVM_DesiredAssertionStatus;
- JVM_DoPrivileged;
- JVM_DumpAllStacks;
- JVM_DumpThreads;
- JVM_FillInStackTrace;
- JVM_FindClassFromCaller;
- JVM_FindClassFromClass;
- JVM_FindClassFromBootLoader;
- JVM_FindLibraryEntry;
- JVM_FindLoadedClass;
- JVM_FindPrimitiveClass;
- JVM_FindSignal;
- JVM_FreeMemory;
- JVM_GC;
- JVM_GetAllThreads;
- JVM_GetArrayElement;
- JVM_GetArrayLength;
- JVM_GetCPClassNameUTF;
- JVM_GetCPFieldClassNameUTF;
- JVM_GetCPFieldModifiers;
- JVM_GetCPFieldNameUTF;
- JVM_GetCPFieldSignatureUTF;
- JVM_GetCPMethodClassNameUTF;
- JVM_GetCPMethodModifiers;
- JVM_GetCPMethodNameUTF;
- JVM_GetCPMethodSignatureUTF;
- JVM_GetCallerClass;
- JVM_GetClassAccessFlags;
- JVM_GetClassAnnotations;
- JVM_GetClassCPEntriesCount;
- JVM_GetClassCPTypes;
- JVM_GetClassConstantPool;
- JVM_GetClassContext;
- JVM_GetClassDeclaredConstructors;
- JVM_GetClassDeclaredFields;
- JVM_GetClassDeclaredMethods;
- JVM_GetClassFieldsCount;
- JVM_GetClassInterfaces;
- JVM_GetClassMethodsCount;
- JVM_GetClassModifiers;
- JVM_GetClassName;
- JVM_GetClassNameUTF;
- JVM_GetClassSignature;
- JVM_GetClassSigners;
- JVM_GetClassTypeAnnotations;
- JVM_GetDeclaredClasses;
- JVM_GetDeclaringClass;
- JVM_GetSimpleBinaryName;
- JVM_GetEnclosingMethodInfo;
- JVM_GetFieldIxModifiers;
- JVM_GetFieldTypeAnnotations;
- JVM_GetInheritedAccessControlContext;
- JVM_GetInterfaceVersion;
- JVM_GetManagement;
- JVM_GetMethodIxArgsSize;
- JVM_GetMethodIxByteCode;
- JVM_GetMethodIxByteCodeLength;
- JVM_GetMethodIxExceptionIndexes;
- JVM_GetMethodIxExceptionTableEntry;
- JVM_GetMethodIxExceptionTableLength;
- JVM_GetMethodIxExceptionsCount;
- JVM_GetMethodIxLocalsCount;
- JVM_GetMethodIxMaxStack;
- JVM_GetMethodIxModifiers;
- JVM_GetMethodIxNameUTF;
- JVM_GetMethodIxSignatureUTF;
- JVM_GetMethodParameters;
- JVM_GetMethodTypeAnnotations;
- JVM_GetNanoTimeAdjustment;
- JVM_GetPrimitiveArrayElement;
- JVM_GetProtectionDomain;
- JVM_GetStackAccessControlContext;
- JVM_GetStackTraceDepth;
- JVM_GetStackTraceElement;
- JVM_GetSystemPackage;
- JVM_GetSystemPackages;
- JVM_GetTemporaryDirectory;
- JVM_GetVersionInfo;
- JVM_Halt;
- JVM_HoldsLock;
- JVM_IHashCode;
- JVM_InitAgentProperties;
- JVM_InitProperties;
- JVM_InternString;
- JVM_Interrupt;
- JVM_InvokeMethod;
- JVM_IsArrayClass;
- JVM_IsConstructorIx;
- JVM_IsInterface;
- JVM_IsInterrupted;
- JVM_IsPrimitiveClass;
- JVM_IsSameClassPackage;
- JVM_IsSupportedJNIVersion;
- JVM_IsThreadAlive;
- JVM_IsVMGeneratedMethodIx;
- JVM_LatestUserDefinedLoader;
- JVM_LoadLibrary;
- JVM_MaxObjectInspectionAge;
- JVM_MaxMemory;
- JVM_MonitorNotify;
- JVM_MonitorNotifyAll;
- JVM_MonitorWait;
- JVM_NanoTime;
- JVM_NativePath;
- JVM_NewArray;
- JVM_NewInstanceFromConstructor;
- JVM_NewMultiArray;
- JVM_RaiseSignal;
- JVM_RawMonitorCreate;
- JVM_RawMonitorDestroy;
- JVM_RawMonitorEnter;
- JVM_RawMonitorExit;
- JVM_RegisterSignal;
- JVM_ReleaseUTF;
- JVM_ResumeThread;
- JVM_SetArrayElement;
- JVM_SetClassSigners;
- JVM_SetNativeThreadName;
- JVM_SetPrimitiveArrayElement;
- JVM_SetThreadPriority;
- JVM_Sleep;
- JVM_StartThread;
- JVM_StopThread;
- JVM_SuspendThread;
- JVM_SupportsCX8;
- JVM_TotalMemory;
- JVM_UnloadLibrary;
- JVM_Yield;
JVM_handle_linux_signal;
# miscellaneous functions
--- a/hotspot/make/bsd/makefiles/mapfile-vers-product Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/bsd/makefiles/mapfile-vers-product Wed Jul 05 20:52:05 2017 +0200
@@ -26,168 +26,6 @@
SUNWprivate_1.1 {
global:
- # JNI
- JNI_CreateJavaVM;
- JNI_GetCreatedJavaVMs;
- JNI_GetDefaultJavaVMInitArgs;
-
- # JVM
- JVM_ActiveProcessorCount;
- JVM_ArrayCopy;
- JVM_AssertionStatusDirectives;
- JVM_ClassDepth;
- JVM_ClassLoaderDepth;
- JVM_Clone;
- JVM_ConstantPoolGetClassAt;
- JVM_ConstantPoolGetClassAtIfLoaded;
- JVM_ConstantPoolGetDoubleAt;
- JVM_ConstantPoolGetFieldAt;
- JVM_ConstantPoolGetFieldAtIfLoaded;
- JVM_ConstantPoolGetFloatAt;
- JVM_ConstantPoolGetIntAt;
- JVM_ConstantPoolGetLongAt;
- JVM_ConstantPoolGetMethodAt;
- JVM_ConstantPoolGetMethodAtIfLoaded;
- JVM_ConstantPoolGetMemberRefInfoAt;
- JVM_ConstantPoolGetSize;
- JVM_ConstantPoolGetStringAt;
- JVM_ConstantPoolGetUTF8At;
- JVM_CountStackFrames;
- JVM_CurrentClassLoader;
- JVM_CurrentLoadedClass;
- JVM_CurrentThread;
- JVM_CurrentTimeMillis;
- JVM_DefineClass;
- JVM_DefineClassWithSource;
- JVM_DefineClassWithSourceCond;
- JVM_DesiredAssertionStatus;
- JVM_DoPrivileged;
- JVM_DumpAllStacks;
- JVM_DumpThreads;
- JVM_FillInStackTrace;
- JVM_FindClassFromCaller;
- JVM_FindClassFromClass;
- JVM_FindClassFromBootLoader;
- JVM_FindLibraryEntry;
- JVM_FindLoadedClass;
- JVM_FindPrimitiveClass;
- JVM_FindSignal;
- JVM_FreeMemory;
- JVM_GC;
- JVM_GetAllThreads;
- JVM_GetArrayElement;
- JVM_GetArrayLength;
- JVM_GetCPClassNameUTF;
- JVM_GetCPFieldClassNameUTF;
- JVM_GetCPFieldModifiers;
- JVM_GetCPFieldNameUTF;
- JVM_GetCPFieldSignatureUTF;
- JVM_GetCPMethodClassNameUTF;
- JVM_GetCPMethodModifiers;
- JVM_GetCPMethodNameUTF;
- JVM_GetCPMethodSignatureUTF;
- JVM_GetCallerClass;
- JVM_GetClassAccessFlags;
- JVM_GetClassAnnotations;
- JVM_GetClassCPEntriesCount;
- JVM_GetClassCPTypes;
- JVM_GetClassConstantPool;
- JVM_GetClassContext;
- JVM_GetClassDeclaredConstructors;
- JVM_GetClassDeclaredFields;
- JVM_GetClassDeclaredMethods;
- JVM_GetClassFieldsCount;
- JVM_GetClassInterfaces;
- JVM_GetClassMethodsCount;
- JVM_GetClassModifiers;
- JVM_GetClassName;
- JVM_GetClassNameUTF;
- JVM_GetClassSignature;
- JVM_GetClassSigners;
- JVM_GetClassTypeAnnotations;
- JVM_GetDeclaredClasses;
- JVM_GetDeclaringClass;
- JVM_GetSimpleBinaryName;
- JVM_GetEnclosingMethodInfo;
- JVM_GetFieldIxModifiers;
- JVM_GetFieldTypeAnnotations;
- JVM_GetInheritedAccessControlContext;
- JVM_GetInterfaceVersion;
- JVM_GetManagement;
- JVM_GetMethodIxArgsSize;
- JVM_GetMethodIxByteCode;
- JVM_GetMethodIxByteCodeLength;
- JVM_GetMethodIxExceptionIndexes;
- JVM_GetMethodIxExceptionTableEntry;
- JVM_GetMethodIxExceptionTableLength;
- JVM_GetMethodIxExceptionsCount;
- JVM_GetMethodIxLocalsCount;
- JVM_GetMethodIxMaxStack;
- JVM_GetMethodIxModifiers;
- JVM_GetMethodIxNameUTF;
- JVM_GetMethodIxSignatureUTF;
- JVM_GetMethodParameters;
- JVM_GetMethodTypeAnnotations;
- JVM_GetNanoTimeAdjustment;
- JVM_GetPrimitiveArrayElement;
- JVM_GetProtectionDomain;
- JVM_GetStackAccessControlContext;
- JVM_GetStackTraceDepth;
- JVM_GetStackTraceElement;
- JVM_GetSystemPackage;
- JVM_GetSystemPackages;
- JVM_GetTemporaryDirectory;
- JVM_GetVersionInfo;
- JVM_Halt;
- JVM_HoldsLock;
- JVM_IHashCode;
- JVM_InitAgentProperties;
- JVM_InitProperties;
- JVM_InternString;
- JVM_Interrupt;
- JVM_InvokeMethod;
- JVM_IsArrayClass;
- JVM_IsConstructorIx;
- JVM_IsInterface;
- JVM_IsInterrupted;
- JVM_IsPrimitiveClass;
- JVM_IsSameClassPackage;
- JVM_IsSupportedJNIVersion;
- JVM_IsThreadAlive;
- JVM_IsVMGeneratedMethodIx;
- JVM_LatestUserDefinedLoader;
- JVM_LoadLibrary;
- JVM_MaxObjectInspectionAge;
- JVM_MaxMemory;
- JVM_MonitorNotify;
- JVM_MonitorNotifyAll;
- JVM_MonitorWait;
- JVM_NanoTime;
- JVM_NativePath;
- JVM_NewArray;
- JVM_NewInstanceFromConstructor;
- JVM_NewMultiArray;
- JVM_RaiseSignal;
- JVM_RawMonitorCreate;
- JVM_RawMonitorDestroy;
- JVM_RawMonitorEnter;
- JVM_RawMonitorExit;
- JVM_RegisterSignal;
- JVM_ReleaseUTF;
- JVM_ResumeThread;
- JVM_SetArrayElement;
- JVM_SetClassSigners;
- JVM_SetNativeThreadName;
- JVM_SetPrimitiveArrayElement;
- JVM_SetThreadPriority;
- JVM_Sleep;
- JVM_StartThread;
- JVM_StopThread;
- JVM_SuspendThread;
- JVM_SupportsCX8;
- JVM_TotalMemory;
- JVM_UnloadLibrary;
- JVM_Yield;
JVM_handle_linux_signal;
# miscellaneous functions
--- a/hotspot/make/bsd/makefiles/vm.make Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/bsd/makefiles/vm.make Wed Jul 05 20:52:05 2017 +0200
@@ -234,10 +234,29 @@
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
-mapfile : $(MAPFILE) vm.def mapfile_ext
+MAPFILE_SHARE := $(GAMMADIR)/make/share/makefiles/mapfile-vers
+
+MAPFILE_EXT_SRC := $(HS_ALT_MAKE)/share/makefiles/mapfile-ext
+ifneq ("$(wildcard $(MAPFILE_EXT_SRC))","")
+MAPFILE_EXT := $(MAPFILE_EXT_SRC)
+endif
+
+# For Darwin: add _ prefix and remove trailing ;
+mapfile_extra: $(MAPFILE_SHARE) $(MAPFILE_EXT)
+ rm -f $@
+ifeq ($(OS_VENDOR), Darwin)
+ cat $(MAPFILE_SHARE) $(MAPFILE_EXT) | \
+ sed -e 's/#.*//g' -e 's/[ ]*//g' -e 's/;//g' | \
+ awk '{ if ($$0 ~ ".") { print "\t\t_" $$0 } }' \
+ > $@
+else
+ cat $(MAPFILE_SHARE) $(MAPFILE_EXT) > $@
+endif
+
+mapfile : $(MAPFILE) mapfile_extra vm.def
rm -f $@
awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \
- { system ("cat mapfile_ext"); system ("cat vm.def"); } \
+ { system ("cat mapfile_extra vm.def"); } \
else \
{ print $$0 } \
}' > $@ < $(MAPFILE)
--- a/hotspot/make/linux/makefiles/mapfile-vers-debug Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/linux/makefiles/mapfile-vers-debug Wed Jul 05 20:52:05 2017 +0200
@@ -26,168 +26,6 @@
SUNWprivate_1.1 {
global:
- # JNI
- JNI_CreateJavaVM;
- JNI_GetCreatedJavaVMs;
- JNI_GetDefaultJavaVMInitArgs;
-
- # JVM
- JVM_ActiveProcessorCount;
- JVM_ArrayCopy;
- JVM_AssertionStatusDirectives;
- JVM_ClassDepth;
- JVM_ClassLoaderDepth;
- JVM_Clone;
- JVM_ConstantPoolGetClassAt;
- JVM_ConstantPoolGetClassAtIfLoaded;
- JVM_ConstantPoolGetDoubleAt;
- JVM_ConstantPoolGetFieldAt;
- JVM_ConstantPoolGetFieldAtIfLoaded;
- JVM_ConstantPoolGetFloatAt;
- JVM_ConstantPoolGetIntAt;
- JVM_ConstantPoolGetLongAt;
- JVM_ConstantPoolGetMethodAt;
- JVM_ConstantPoolGetMethodAtIfLoaded;
- JVM_ConstantPoolGetMemberRefInfoAt;
- JVM_ConstantPoolGetSize;
- JVM_ConstantPoolGetStringAt;
- JVM_ConstantPoolGetUTF8At;
- JVM_CountStackFrames;
- JVM_CurrentClassLoader;
- JVM_CurrentLoadedClass;
- JVM_CurrentThread;
- JVM_CurrentTimeMillis;
- JVM_DefineClass;
- JVM_DefineClassWithSource;
- JVM_DefineClassWithSourceCond;
- JVM_DesiredAssertionStatus;
- JVM_DoPrivileged;
- JVM_DumpAllStacks;
- JVM_DumpThreads;
- JVM_FillInStackTrace;
- JVM_FindClassFromCaller;
- JVM_FindClassFromClass;
- JVM_FindClassFromBootLoader;
- JVM_FindLibraryEntry;
- JVM_FindLoadedClass;
- JVM_FindPrimitiveClass;
- JVM_FindSignal;
- JVM_FreeMemory;
- JVM_GC;
- JVM_GetAllThreads;
- JVM_GetArrayElement;
- JVM_GetArrayLength;
- JVM_GetCPClassNameUTF;
- JVM_GetCPFieldClassNameUTF;
- JVM_GetCPFieldModifiers;
- JVM_GetCPFieldNameUTF;
- JVM_GetCPFieldSignatureUTF;
- JVM_GetCPMethodClassNameUTF;
- JVM_GetCPMethodModifiers;
- JVM_GetCPMethodNameUTF;
- JVM_GetCPMethodSignatureUTF;
- JVM_GetCallerClass;
- JVM_GetClassAccessFlags;
- JVM_GetClassAnnotations;
- JVM_GetClassCPEntriesCount;
- JVM_GetClassCPTypes;
- JVM_GetClassConstantPool;
- JVM_GetClassContext;
- JVM_GetClassDeclaredConstructors;
- JVM_GetClassDeclaredFields;
- JVM_GetClassDeclaredMethods;
- JVM_GetClassFieldsCount;
- JVM_GetClassInterfaces;
- JVM_GetClassMethodsCount;
- JVM_GetClassModifiers;
- JVM_GetClassName;
- JVM_GetClassNameUTF;
- JVM_GetClassSignature;
- JVM_GetClassSigners;
- JVM_GetClassTypeAnnotations;
- JVM_GetDeclaredClasses;
- JVM_GetDeclaringClass;
- JVM_GetSimpleBinaryName;
- JVM_GetEnclosingMethodInfo;
- JVM_GetFieldIxModifiers;
- JVM_GetFieldTypeAnnotations;
- JVM_GetInheritedAccessControlContext;
- JVM_GetInterfaceVersion;
- JVM_GetManagement;
- JVM_GetMethodIxArgsSize;
- JVM_GetMethodIxByteCode;
- JVM_GetMethodIxByteCodeLength;
- JVM_GetMethodIxExceptionIndexes;
- JVM_GetMethodIxExceptionTableEntry;
- JVM_GetMethodIxExceptionTableLength;
- JVM_GetMethodIxExceptionsCount;
- JVM_GetMethodIxLocalsCount;
- JVM_GetMethodIxMaxStack;
- JVM_GetMethodIxModifiers;
- JVM_GetMethodIxNameUTF;
- JVM_GetMethodIxSignatureUTF;
- JVM_GetMethodParameters;
- JVM_GetMethodTypeAnnotations;
- JVM_GetNanoTimeAdjustment;
- JVM_GetPrimitiveArrayElement;
- JVM_GetProtectionDomain;
- JVM_GetStackAccessControlContext;
- JVM_GetStackTraceDepth;
- JVM_GetStackTraceElement;
- JVM_GetSystemPackage;
- JVM_GetSystemPackages;
- JVM_GetTemporaryDirectory;
- JVM_GetVersionInfo;
- JVM_Halt;
- JVM_HoldsLock;
- JVM_IHashCode;
- JVM_InitAgentProperties;
- JVM_InitProperties;
- JVM_InternString;
- JVM_Interrupt;
- JVM_InvokeMethod;
- JVM_IsArrayClass;
- JVM_IsConstructorIx;
- JVM_IsInterface;
- JVM_IsInterrupted;
- JVM_IsPrimitiveClass;
- JVM_IsSameClassPackage;
- JVM_IsSupportedJNIVersion;
- JVM_IsThreadAlive;
- JVM_IsVMGeneratedMethodIx;
- JVM_LatestUserDefinedLoader;
- JVM_LoadLibrary;
- JVM_MaxObjectInspectionAge;
- JVM_MaxMemory;
- JVM_MonitorNotify;
- JVM_MonitorNotifyAll;
- JVM_MonitorWait;
- JVM_NanoTime;
- JVM_NativePath;
- JVM_NewArray;
- JVM_NewInstanceFromConstructor;
- JVM_NewMultiArray;
- JVM_RaiseSignal;
- JVM_RawMonitorCreate;
- JVM_RawMonitorDestroy;
- JVM_RawMonitorEnter;
- JVM_RawMonitorExit;
- JVM_RegisterSignal;
- JVM_ReleaseUTF;
- JVM_ResumeThread;
- JVM_SetArrayElement;
- JVM_SetClassSigners;
- JVM_SetNativeThreadName;
- JVM_SetPrimitiveArrayElement;
- JVM_SetThreadPriority;
- JVM_Sleep;
- JVM_StartThread;
- JVM_StopThread;
- JVM_SuspendThread;
- JVM_SupportsCX8;
- JVM_TotalMemory;
- JVM_UnloadLibrary;
- JVM_Yield;
JVM_handle_linux_signal;
# miscellaneous functions
--- a/hotspot/make/linux/makefiles/mapfile-vers-product Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/linux/makefiles/mapfile-vers-product Wed Jul 05 20:52:05 2017 +0200
@@ -26,168 +26,6 @@
SUNWprivate_1.1 {
global:
- # JNI
- JNI_CreateJavaVM;
- JNI_GetCreatedJavaVMs;
- JNI_GetDefaultJavaVMInitArgs;
-
- # JVM
- JVM_ActiveProcessorCount;
- JVM_ArrayCopy;
- JVM_AssertionStatusDirectives;
- JVM_ClassDepth;
- JVM_ClassLoaderDepth;
- JVM_Clone;
- JVM_ConstantPoolGetClassAt;
- JVM_ConstantPoolGetClassAtIfLoaded;
- JVM_ConstantPoolGetDoubleAt;
- JVM_ConstantPoolGetFieldAt;
- JVM_ConstantPoolGetFieldAtIfLoaded;
- JVM_ConstantPoolGetFloatAt;
- JVM_ConstantPoolGetIntAt;
- JVM_ConstantPoolGetLongAt;
- JVM_ConstantPoolGetMethodAt;
- JVM_ConstantPoolGetMethodAtIfLoaded;
- JVM_ConstantPoolGetMemberRefInfoAt;
- JVM_ConstantPoolGetSize;
- JVM_ConstantPoolGetStringAt;
- JVM_ConstantPoolGetUTF8At;
- JVM_CountStackFrames;
- JVM_CurrentClassLoader;
- JVM_CurrentLoadedClass;
- JVM_CurrentThread;
- JVM_CurrentTimeMillis;
- JVM_DefineClass;
- JVM_DefineClassWithSource;
- JVM_DefineClassWithSourceCond;
- JVM_DesiredAssertionStatus;
- JVM_DoPrivileged;
- JVM_DumpAllStacks;
- JVM_DumpThreads;
- JVM_FillInStackTrace;
- JVM_FindClassFromCaller;
- JVM_FindClassFromClass;
- JVM_FindClassFromBootLoader;
- JVM_FindLibraryEntry;
- JVM_FindLoadedClass;
- JVM_FindPrimitiveClass;
- JVM_FindSignal;
- JVM_FreeMemory;
- JVM_GC;
- JVM_GetAllThreads;
- JVM_GetArrayElement;
- JVM_GetArrayLength;
- JVM_GetCPClassNameUTF;
- JVM_GetCPFieldClassNameUTF;
- JVM_GetCPFieldModifiers;
- JVM_GetCPFieldNameUTF;
- JVM_GetCPFieldSignatureUTF;
- JVM_GetCPMethodClassNameUTF;
- JVM_GetCPMethodModifiers;
- JVM_GetCPMethodNameUTF;
- JVM_GetCPMethodSignatureUTF;
- JVM_GetCallerClass;
- JVM_GetClassAccessFlags;
- JVM_GetClassAnnotations;
- JVM_GetClassCPEntriesCount;
- JVM_GetClassCPTypes;
- JVM_GetClassConstantPool;
- JVM_GetClassContext;
- JVM_GetClassDeclaredConstructors;
- JVM_GetClassDeclaredFields;
- JVM_GetClassDeclaredMethods;
- JVM_GetClassFieldsCount;
- JVM_GetClassInterfaces;
- JVM_GetClassMethodsCount;
- JVM_GetClassModifiers;
- JVM_GetClassName;
- JVM_GetClassNameUTF;
- JVM_GetClassSignature;
- JVM_GetClassSigners;
- JVM_GetClassTypeAnnotations;
- JVM_GetDeclaredClasses;
- JVM_GetDeclaringClass;
- JVM_GetSimpleBinaryName;
- JVM_GetEnclosingMethodInfo;
- JVM_GetFieldIxModifiers;
- JVM_GetFieldTypeAnnotations;
- JVM_GetInheritedAccessControlContext;
- JVM_GetInterfaceVersion;
- JVM_GetManagement;
- JVM_GetMethodIxArgsSize;
- JVM_GetMethodIxByteCode;
- JVM_GetMethodIxByteCodeLength;
- JVM_GetMethodIxExceptionIndexes;
- JVM_GetMethodIxExceptionTableEntry;
- JVM_GetMethodIxExceptionTableLength;
- JVM_GetMethodIxExceptionsCount;
- JVM_GetMethodIxLocalsCount;
- JVM_GetMethodIxMaxStack;
- JVM_GetMethodIxModifiers;
- JVM_GetMethodIxNameUTF;
- JVM_GetMethodIxSignatureUTF;
- JVM_GetMethodParameters;
- JVM_GetMethodTypeAnnotations;
- JVM_GetNanoTimeAdjustment;
- JVM_GetPrimitiveArrayElement;
- JVM_GetProtectionDomain;
- JVM_GetStackAccessControlContext;
- JVM_GetStackTraceDepth;
- JVM_GetStackTraceElement;
- JVM_GetSystemPackage;
- JVM_GetSystemPackages;
- JVM_GetTemporaryDirectory;
- JVM_GetVersionInfo;
- JVM_Halt;
- JVM_HoldsLock;
- JVM_IHashCode;
- JVM_InitAgentProperties;
- JVM_InitProperties;
- JVM_InternString;
- JVM_Interrupt;
- JVM_InvokeMethod;
- JVM_IsArrayClass;
- JVM_IsConstructorIx;
- JVM_IsInterface;
- JVM_IsInterrupted;
- JVM_IsPrimitiveClass;
- JVM_IsSameClassPackage;
- JVM_IsSupportedJNIVersion;
- JVM_IsThreadAlive;
- JVM_IsVMGeneratedMethodIx;
- JVM_LatestUserDefinedLoader;
- JVM_LoadLibrary;
- JVM_MaxObjectInspectionAge;
- JVM_MaxMemory;
- JVM_MonitorNotify;
- JVM_MonitorNotifyAll;
- JVM_MonitorWait;
- JVM_NanoTime;
- JVM_NativePath;
- JVM_NewArray;
- JVM_NewInstanceFromConstructor;
- JVM_NewMultiArray;
- JVM_RaiseSignal;
- JVM_RawMonitorCreate;
- JVM_RawMonitorDestroy;
- JVM_RawMonitorEnter;
- JVM_RawMonitorExit;
- JVM_RegisterSignal;
- JVM_ReleaseUTF;
- JVM_ResumeThread;
- JVM_SetArrayElement;
- JVM_SetClassSigners;
- JVM_SetNativeThreadName;
- JVM_SetPrimitiveArrayElement;
- JVM_SetThreadPriority;
- JVM_Sleep;
- JVM_StartThread;
- JVM_StopThread;
- JVM_SuspendThread;
- JVM_SupportsCX8;
- JVM_TotalMemory;
- JVM_UnloadLibrary;
- JVM_Yield;
JVM_handle_linux_signal;
# miscellaneous functions
--- a/hotspot/make/linux/makefiles/vm.make Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/linux/makefiles/vm.make Wed Jul 05 20:52:05 2017 +0200
@@ -232,10 +232,17 @@
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
-mapfile : $(MAPFILE) vm.def mapfile_ext
+MAPFILE_SHARE := $(GAMMADIR)/make/share/makefiles/mapfile-vers
+
+MAPFILE_EXT_SRC := $(HS_ALT_MAKE)/share/makefiles/mapfile-ext
+ifneq ("$(wildcard $(MAPFILE_EXT_SRC))","")
+MAPFILE_EXT := $(MAPFILE_EXT_SRC)
+endif
+
+mapfile : $(MAPFILE) $(MAPFILE_SHARE) vm.def $(MAPFILE_EXT)
rm -f $@
awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \
- { system ("cat mapfile_ext"); system ("cat vm.def"); } \
+ { system ("cat ${MAPFILE_SHARE} $(MAPFILE_EXT) vm.def"); } \
else \
{ print $$0 } \
}' > $@ < $(MAPFILE)
@@ -259,13 +266,6 @@
cat $(VM_DEF_EXT) >> $@
endif
-mapfile_ext:
- rm -f $@
- touch $@
- if [ -f $(HS_ALT_MAKE)/linux/makefiles/mapfile-ext ]; then \
- cat $(HS_ALT_MAKE)/linux/makefiles/mapfile-ext > $@; \
- fi
-
ifeq ($(JVM_VARIANT_ZEROSHARK), true)
STATIC_CXX = false
else
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/make/share/makefiles/mapfile-vers Wed Jul 05 20:52:05 2017 +0200
@@ -0,0 +1,162 @@
+ # JNI
+ JNI_CreateJavaVM;
+ JNI_GetCreatedJavaVMs;
+ JNI_GetDefaultJavaVMInitArgs;
+
+ # JVM
+ JVM_ActiveProcessorCount;
+ JVM_ArrayCopy;
+ JVM_AssertionStatusDirectives;
+ JVM_ClassDepth;
+ JVM_ClassLoaderDepth;
+ JVM_Clone;
+ JVM_ConstantPoolGetClassAt;
+ JVM_ConstantPoolGetClassAtIfLoaded;
+ JVM_ConstantPoolGetDoubleAt;
+ JVM_ConstantPoolGetFieldAt;
+ JVM_ConstantPoolGetFieldAtIfLoaded;
+ JVM_ConstantPoolGetFloatAt;
+ JVM_ConstantPoolGetIntAt;
+ JVM_ConstantPoolGetLongAt;
+ JVM_ConstantPoolGetMethodAt;
+ JVM_ConstantPoolGetMethodAtIfLoaded;
+ JVM_ConstantPoolGetMemberRefInfoAt;
+ JVM_ConstantPoolGetSize;
+ JVM_ConstantPoolGetStringAt;
+ JVM_ConstantPoolGetUTF8At;
+ JVM_CountStackFrames;
+ JVM_CurrentClassLoader;
+ JVM_CurrentLoadedClass;
+ JVM_CurrentThread;
+ JVM_CurrentTimeMillis;
+ JVM_DefineClass;
+ JVM_DefineClassWithSource;
+ JVM_DefineClassWithSourceCond;
+ JVM_DesiredAssertionStatus;
+ JVM_DoPrivileged;
+ JVM_DumpAllStacks;
+ JVM_DumpThreads;
+ JVM_FillInStackTrace;
+ JVM_FindClassFromCaller;
+ JVM_FindClassFromClass;
+ JVM_FindClassFromBootLoader;
+ JVM_FindLibraryEntry;
+ JVM_FindLoadedClass;
+ JVM_FindPrimitiveClass;
+ JVM_FindSignal;
+ JVM_FreeMemory;
+ JVM_GC;
+ JVM_GetAllThreads;
+ JVM_GetArrayElement;
+ JVM_GetArrayLength;
+ JVM_GetCPClassNameUTF;
+ JVM_GetCPFieldClassNameUTF;
+ JVM_GetCPFieldModifiers;
+ JVM_GetCPFieldNameUTF;
+ JVM_GetCPFieldSignatureUTF;
+ JVM_GetCPMethodClassNameUTF;
+ JVM_GetCPMethodModifiers;
+ JVM_GetCPMethodNameUTF;
+ JVM_GetCPMethodSignatureUTF;
+ JVM_GetCallerClass;
+ JVM_GetClassAccessFlags;
+ JVM_GetClassAnnotations;
+ JVM_GetClassCPEntriesCount;
+ JVM_GetClassCPTypes;
+ JVM_GetClassConstantPool;
+ JVM_GetClassContext;
+ JVM_GetClassDeclaredConstructors;
+ JVM_GetClassDeclaredFields;
+ JVM_GetClassDeclaredMethods;
+ JVM_GetClassFieldsCount;
+ JVM_GetClassInterfaces;
+ JVM_GetClassMethodsCount;
+ JVM_GetClassModifiers;
+ JVM_GetClassName;
+ JVM_GetClassNameUTF;
+ JVM_GetClassSignature;
+ JVM_GetClassSigners;
+ JVM_GetClassTypeAnnotations;
+ JVM_GetDeclaredClasses;
+ JVM_GetDeclaringClass;
+ JVM_GetSimpleBinaryName;
+ JVM_GetEnclosingMethodInfo;
+ JVM_GetFieldIxModifiers;
+ JVM_GetFieldTypeAnnotations;
+ JVM_GetInheritedAccessControlContext;
+ JVM_GetInterfaceVersion;
+ JVM_GetManagement;
+ JVM_GetMethodIxArgsSize;
+ JVM_GetMethodIxByteCode;
+ JVM_GetMethodIxByteCodeLength;
+ JVM_GetMethodIxExceptionIndexes;
+ JVM_GetMethodIxExceptionTableEntry;
+ JVM_GetMethodIxExceptionTableLength;
+ JVM_GetMethodIxExceptionsCount;
+ JVM_GetMethodIxLocalsCount;
+ JVM_GetMethodIxMaxStack;
+ JVM_GetMethodIxModifiers;
+ JVM_GetMethodIxNameUTF;
+ JVM_GetMethodIxSignatureUTF;
+ JVM_GetMethodParameters;
+ JVM_GetMethodTypeAnnotations;
+ JVM_GetNanoTimeAdjustment;
+ JVM_GetPrimitiveArrayElement;
+ JVM_GetProtectionDomain;
+ JVM_GetStackAccessControlContext;
+ JVM_GetStackTraceDepth;
+ JVM_GetStackTraceElement;
+ JVM_GetSystemPackage;
+ JVM_GetSystemPackages;
+ JVM_GetTemporaryDirectory;
+ JVM_GetVersionInfo;
+ JVM_Halt;
+ JVM_HoldsLock;
+ JVM_IHashCode;
+ JVM_InitAgentProperties;
+ JVM_InitProperties;
+ JVM_InternString;
+ JVM_Interrupt;
+ JVM_InvokeMethod;
+ JVM_IsArrayClass;
+ JVM_IsConstructorIx;
+ JVM_IsInterface;
+ JVM_IsInterrupted;
+ JVM_IsPrimitiveClass;
+ JVM_IsSameClassPackage;
+ JVM_IsSupportedJNIVersion;
+ JVM_IsThreadAlive;
+ JVM_IsVMGeneratedMethodIx;
+ JVM_LatestUserDefinedLoader;
+ JVM_LoadLibrary;
+ JVM_MaxObjectInspectionAge;
+ JVM_MaxMemory;
+ JVM_MonitorNotify;
+ JVM_MonitorNotifyAll;
+ JVM_MonitorWait;
+ JVM_NanoTime;
+ JVM_NativePath;
+ JVM_NewArray;
+ JVM_NewInstanceFromConstructor;
+ JVM_NewMultiArray;
+ JVM_RaiseSignal;
+ JVM_RawMonitorCreate;
+ JVM_RawMonitorDestroy;
+ JVM_RawMonitorEnter;
+ JVM_RawMonitorExit;
+ JVM_RegisterSignal;
+ JVM_ReleaseUTF;
+ JVM_ResumeThread;
+ JVM_SetArrayElement;
+ JVM_SetClassSigners;
+ JVM_SetNativeThreadName;
+ JVM_SetPrimitiveArrayElement;
+ JVM_SetThreadPriority;
+ JVM_Sleep;
+ JVM_StartThread;
+ JVM_StopThread;
+ JVM_SuspendThread;
+ JVM_SupportsCX8;
+ JVM_TotalMemory;
+ JVM_UnloadLibrary;
+ JVM_Yield;
--- a/hotspot/make/solaris/makefiles/mapfile-vers Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/solaris/makefiles/mapfile-vers Wed Jul 05 20:52:05 2017 +0200
@@ -26,168 +26,6 @@
SUNWprivate_1.1 {
global:
- # JNI
- JNI_CreateJavaVM;
- JNI_GetCreatedJavaVMs;
- JNI_GetDefaultJavaVMInitArgs;
-
- # JVM
- JVM_ActiveProcessorCount;
- JVM_ArrayCopy;
- JVM_AssertionStatusDirectives;
- JVM_ClassDepth;
- JVM_ClassLoaderDepth;
- JVM_Clone;
- JVM_ConstantPoolGetClassAt;
- JVM_ConstantPoolGetClassAtIfLoaded;
- JVM_ConstantPoolGetDoubleAt;
- JVM_ConstantPoolGetFieldAt;
- JVM_ConstantPoolGetFieldAtIfLoaded;
- JVM_ConstantPoolGetFloatAt;
- JVM_ConstantPoolGetIntAt;
- JVM_ConstantPoolGetLongAt;
- JVM_ConstantPoolGetMethodAt;
- JVM_ConstantPoolGetMethodAtIfLoaded;
- JVM_ConstantPoolGetMemberRefInfoAt;
- JVM_ConstantPoolGetSize;
- JVM_ConstantPoolGetStringAt;
- JVM_ConstantPoolGetUTF8At;
- JVM_CountStackFrames;
- JVM_CurrentClassLoader;
- JVM_CurrentLoadedClass;
- JVM_CurrentThread;
- JVM_CurrentTimeMillis;
- JVM_DefineClass;
- JVM_DefineClassWithSource;
- JVM_DefineClassWithSourceCond;
- JVM_DesiredAssertionStatus;
- JVM_DoPrivileged;
- JVM_DumpAllStacks;
- JVM_DumpThreads;
- JVM_FillInStackTrace;
- JVM_FindClassFromCaller;
- JVM_FindClassFromClass;
- JVM_FindClassFromBootLoader;
- JVM_FindLibraryEntry;
- JVM_FindLoadedClass;
- JVM_FindPrimitiveClass;
- JVM_FindSignal;
- JVM_FreeMemory;
- JVM_GC;
- JVM_GetAllThreads;
- JVM_GetArrayElement;
- JVM_GetArrayLength;
- JVM_GetCPClassNameUTF;
- JVM_GetCPFieldClassNameUTF;
- JVM_GetCPFieldModifiers;
- JVM_GetCPFieldNameUTF;
- JVM_GetCPFieldSignatureUTF;
- JVM_GetCPMethodClassNameUTF;
- JVM_GetCPMethodModifiers;
- JVM_GetCPMethodNameUTF;
- JVM_GetCPMethodSignatureUTF;
- JVM_GetCallerClass;
- JVM_GetClassAccessFlags;
- JVM_GetClassAnnotations;
- JVM_GetClassCPEntriesCount;
- JVM_GetClassCPTypes;
- JVM_GetClassConstantPool;
- JVM_GetClassContext;
- JVM_GetClassDeclaredConstructors;
- JVM_GetClassDeclaredFields;
- JVM_GetClassDeclaredMethods;
- JVM_GetClassFieldsCount;
- JVM_GetClassInterfaces;
- JVM_GetClassMethodsCount;
- JVM_GetClassModifiers;
- JVM_GetClassName;
- JVM_GetClassNameUTF;
- JVM_GetClassSignature;
- JVM_GetClassSigners;
- JVM_GetClassTypeAnnotations;
- JVM_GetDeclaredClasses;
- JVM_GetDeclaringClass;
- JVM_GetSimpleBinaryName;
- JVM_GetEnclosingMethodInfo;
- JVM_GetFieldIxModifiers;
- JVM_GetFieldTypeAnnotations;
- JVM_GetInheritedAccessControlContext;
- JVM_GetInterfaceVersion;
- JVM_GetManagement;
- JVM_GetMethodIxArgsSize;
- JVM_GetMethodIxByteCode;
- JVM_GetMethodIxByteCodeLength;
- JVM_GetMethodIxExceptionIndexes;
- JVM_GetMethodIxExceptionTableEntry;
- JVM_GetMethodIxExceptionTableLength;
- JVM_GetMethodIxExceptionsCount;
- JVM_GetMethodIxLocalsCount;
- JVM_GetMethodIxMaxStack;
- JVM_GetMethodIxModifiers;
- JVM_GetMethodIxNameUTF;
- JVM_GetMethodIxSignatureUTF;
- JVM_GetMethodParameters;
- JVM_GetMethodTypeAnnotations;
- JVM_GetNanoTimeAdjustment;
- JVM_GetPrimitiveArrayElement;
- JVM_GetProtectionDomain;
- JVM_GetStackAccessControlContext;
- JVM_GetStackTraceDepth;
- JVM_GetStackTraceElement;
- JVM_GetSystemPackage;
- JVM_GetSystemPackages;
- JVM_GetTemporaryDirectory;
- JVM_GetVersionInfo;
- JVM_Halt;
- JVM_HoldsLock;
- JVM_IHashCode;
- JVM_InitAgentProperties;
- JVM_InitProperties;
- JVM_InternString;
- JVM_Interrupt;
- JVM_InvokeMethod;
- JVM_IsArrayClass;
- JVM_IsConstructorIx;
- JVM_IsInterface;
- JVM_IsInterrupted;
- JVM_IsPrimitiveClass;
- JVM_IsSameClassPackage;
- JVM_IsSupportedJNIVersion;
- JVM_IsThreadAlive;
- JVM_IsVMGeneratedMethodIx;
- JVM_LatestUserDefinedLoader;
- JVM_LoadLibrary;
- JVM_MaxObjectInspectionAge;
- JVM_MaxMemory;
- JVM_MonitorNotify;
- JVM_MonitorNotifyAll;
- JVM_MonitorWait;
- JVM_NativePath;
- JVM_NanoTime;
- JVM_NewArray;
- JVM_NewInstanceFromConstructor;
- JVM_NewMultiArray;
- JVM_RaiseSignal;
- JVM_RawMonitorCreate;
- JVM_RawMonitorDestroy;
- JVM_RawMonitorEnter;
- JVM_RawMonitorExit;
- JVM_RegisterSignal;
- JVM_ReleaseUTF;
- JVM_ResumeThread;
- JVM_SetArrayElement;
- JVM_SetClassSigners;
- JVM_SetNativeThreadName;
- JVM_SetPrimitiveArrayElement;
- JVM_SetThreadPriority;
- JVM_Sleep;
- JVM_StartThread;
- JVM_StopThread;
- JVM_SuspendThread;
- JVM_SupportsCX8;
- JVM_TotalMemory;
- JVM_UnloadLibrary;
- JVM_Yield;
JVM_handle_solaris_signal;
# miscellaneous functions
--- a/hotspot/make/solaris/makefiles/vm.make Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/make/solaris/makefiles/vm.make Wed Jul 05 20:52:05 2017 +0200
@@ -241,13 +241,19 @@
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
-mapfile : $(MAPFILE) $(MAPFILE_DTRACE_OPT) vm.def mapfile_ext
+MAPFILE_SHARE := $(GAMMADIR)/make/share/makefiles/mapfile-vers
+
+MAPFILE_EXT_SRC := $(HS_ALT_MAKE)/share/makefiles/mapfile-ext
+ifneq ("$(wildcard $(MAPFILE_EXT_SRC))","")
+MAPFILE_EXT := $(MAPFILE_EXT_SRC)
+endif
+
+mapfile : $(MAPFILE) $(MAPFILE_SHARE) vm.def $(MAPFILE_EXT)
rm -f $@
cat $(MAPFILE) $(MAPFILE_DTRACE_OPT) \
| $(NAWK) '{ \
if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") { \
- system ("cat mapfile_ext"); \
- system ("cat vm.def"); \
+ system ("cat ${MAPFILE_SHARE} $(MAPFILE_EXT) vm.def"); \
} else { \
print $$0; \
} \
@@ -260,12 +266,6 @@
vm.def: $(Obj_Files)
sh $(GAMMADIR)/make/solaris/makefiles/build_vm_def.sh *.o > $@
-mapfile_ext:
- rm -f $@
- touch $@
- if [ -f $(HS_ALT_MAKE)/solaris/makefiles/mapfile-ext ]; then \
- cat $(HS_ALT_MAKE)/solaris/makefiles/mapfile-ext > $@; \
- fi
ifeq ($(LINK_INTO),AOUT)
LIBJVM.o =
--- a/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -1608,6 +1608,8 @@
test_method_data_pointer(mdp, profile_continue);
if (MethodData::profile_return_jsr292_only()) {
+ assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2");
+
// If we don't profile all invoke bytecodes we must make sure
// it's a bytecode we indeed profile. We can't go back to the
// begining of the ProfileData we intend to update to check its
@@ -1620,7 +1622,7 @@
cmp(rscratch1, Bytecodes::_invokehandle);
br(Assembler::EQ, do_profile);
get_method(tmp);
- ldrb(rscratch1, Address(tmp, Method::intrinsic_id_offset_in_bytes()));
+ ldrh(rscratch1, Address(tmp, Method::intrinsic_id_offset_in_bytes()));
cmp(rscratch1, vmIntrinsics::_compiledLambdaForm);
br(Assembler::NE, profile_continue);
--- a/hotspot/src/cpu/aarch64/vm/methodHandles_aarch64.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/cpu/aarch64/vm/methodHandles_aarch64.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -188,9 +188,11 @@
address entry_point = __ pc();
if (VerifyMethodHandles) {
+ assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2");
+
Label L;
BLOCK_COMMENT("verify_intrinsic_id {");
- __ ldrb(rscratch1, Address(rmethod, Method::intrinsic_id_offset_in_bytes()));
+ __ ldrh(rscratch1, Address(rmethod, Method::intrinsic_id_offset_in_bytes()));
__ cmp(rscratch1, (int) iid);
__ br(Assembler::EQ, L);
if (iid == vmIntrinsics::_linkToVirtual ||
--- a/hotspot/src/cpu/ppc/vm/interp_masm_ppc_64.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/cpu/ppc/vm/interp_masm_ppc_64.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -1817,13 +1817,15 @@
test_method_data_pointer(profile_continue);
if (MethodData::profile_return_jsr292_only()) {
+ assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2");
+
// If we don't profile all invoke bytecodes we must make sure
// it's a bytecode we indeed profile. We can't go back to the
// begining of the ProfileData we intend to update to check its
// type because we're right after it and we don't known its
// length.
lbz(tmp1, 0, R14_bcp);
- lbz(tmp2, Method::intrinsic_id_offset_in_bytes(), R19_method);
+ lhz(tmp2, Method::intrinsic_id_offset_in_bytes(), R19_method);
cmpwi(CCR0, tmp1, Bytecodes::_invokedynamic);
cmpwi(CCR1, tmp1, Bytecodes::_invokehandle);
cror(CCR0, Assembler::equal, CCR1, Assembler::equal);
--- a/hotspot/src/cpu/ppc/vm/methodHandles_ppc.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/cpu/ppc/vm/methodHandles_ppc.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -224,11 +224,12 @@
address entry_point = __ pc();
if (VerifyMethodHandles) {
+ assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2");
+
Label L;
BLOCK_COMMENT("verify_intrinsic_id {");
__ load_sized_value(temp1, Method::intrinsic_id_offset_in_bytes(), R19_method,
- sizeof(u1), /*is_signed*/ false);
- // assert(sizeof(u1) == sizeof(Method::_intrinsic_id), "");
+ sizeof(u2), /*is_signed*/ false);
__ cmpwi(CCR1, temp1, (int) iid);
__ beq(CCR1, L);
if (iid == vmIntrinsics::_linkToVirtual ||
--- a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -2021,6 +2021,8 @@
test_method_data_pointer(profile_continue);
if (MethodData::profile_return_jsr292_only()) {
+ assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2");
+
// If we don't profile all invoke bytecodes we must make sure
// it's a bytecode we indeed profile. We can't go back to the
// begining of the ProfileData we intend to update to check its
@@ -2031,7 +2033,7 @@
cmp_and_br_short(tmp1, Bytecodes::_invokedynamic, equal, pn, do_profile);
cmp(tmp1, Bytecodes::_invokehandle);
br(equal, false, pn, do_profile);
- delayed()->ldub(Lmethod, Method::intrinsic_id_offset_in_bytes(), tmp1);
+ delayed()->lduh(Lmethod, Method::intrinsic_id_offset_in_bytes(), tmp1);
cmp_and_br_short(tmp1, vmIntrinsics::_compiledLambdaForm, notEqual, pt, profile_continue);
bind(do_profile);
--- a/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -229,9 +229,11 @@
address entry_point = __ pc();
if (VerifyMethodHandles) {
+ assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2");
+
Label L;
BLOCK_COMMENT("verify_intrinsic_id {");
- __ ldub(Address(G5_method, Method::intrinsic_id_offset_in_bytes()), O1_scratch);
+ __ lduh(Address(G5_method, Method::intrinsic_id_offset_in_bytes()), O1_scratch);
__ cmp_and_br_short(O1_scratch, (int) iid, Assembler::equal, Assembler::pt, L);
if (iid == vmIntrinsics::_linkToVirtual ||
iid == vmIntrinsics::_linkToSpecial) {
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -169,6 +169,8 @@
test_method_data_pointer(mdp, profile_continue);
if (MethodData::profile_return_jsr292_only()) {
+ assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2");
+
// If we don't profile all invoke bytecodes we must make sure
// it's a bytecode we indeed profile. We can't go back to the
// begining of the ProfileData we intend to update to check its
@@ -180,7 +182,7 @@
cmpb(Address(_bcp_register, 0), Bytecodes::_invokehandle);
jcc(Assembler::equal, do_profile);
get_method(tmp);
- cmpb(Address(tmp, Method::intrinsic_id_offset_in_bytes()), vmIntrinsics::_compiledLambdaForm);
+ cmpw(Address(tmp, Method::intrinsic_id_offset_in_bytes()), vmIntrinsics::_compiledLambdaForm);
jcc(Assembler::notEqual, profile_continue);
bind(do_profile);
--- a/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -222,9 +222,11 @@
address entry_point = __ pc();
if (VerifyMethodHandles) {
+ assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2");
+
Label L;
BLOCK_COMMENT("verify_intrinsic_id {");
- __ cmpb(Address(rbx_method, Method::intrinsic_id_offset_in_bytes()), (int) iid);
+ __ cmpw(Address(rbx_method, Method::intrinsic_id_offset_in_bytes()), (int) iid);
__ jcc(Assembler::equal, L);
if (iid == vmIntrinsics::_linkToVirtual ||
iid == vmIntrinsics::_linkToSpecial) {
--- a/hotspot/src/share/vm/classfile/classFileParser.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/classfile/classFileParser.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -1989,6 +1989,10 @@
flags = JVM_ACC_STATIC;
} else if ((flags & JVM_ACC_STATIC) == JVM_ACC_STATIC) {
flags &= JVM_ACC_STATIC | JVM_ACC_STRICT;
+ } else {
+ // As of major_version 51, a method named <clinit> without ACC_STATIC is
+ // just another method. So, do a normal method modifer check.
+ verify_legal_method_modifiers(flags, is_interface, name, CHECK_(nullHandle));
}
} else {
verify_legal_method_modifiers(flags, is_interface, name, CHECK_(nullHandle));
--- a/hotspot/src/share/vm/classfile/verificationType.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/classfile/verificationType.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -70,9 +70,12 @@
if (this_class->is_interface() && (!from_field_is_protected ||
from.name() != vmSymbols::java_lang_Object())) {
// If we are not trying to access a protected field or method in
- // java.lang.Object then we treat interfaces as java.lang.Object,
- // including java.lang.Cloneable and java.io.Serializable.
- return true;
+ // java.lang.Object then, for arrays, we only allow assignability
+ // to interfaces java.lang.Cloneable and java.io.Serializable.
+ // Otherwise, we treat interfaces as java.lang.Object.
+ return !from.is_array() ||
+ this_class == SystemDictionary::Cloneable_klass() ||
+ this_class == SystemDictionary::Serializable_klass();
} else if (from.is_object()) {
Klass* from_class = SystemDictionary::resolve_or_fail(
from.name(), Handle(THREAD, klass->class_loader()),
--- a/hotspot/src/share/vm/classfile/verifier.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/classfile/verifier.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -1579,9 +1579,11 @@
return;
}
// Make sure "this" has been initialized if current method is an
- // <init>
+ // <init>. Note that "<init>" methods in interfaces are just
+ // normal methods. Interfaces cannot have ctors.
if (_method->name() == vmSymbols::object_initializer_name() &&
- current_frame.flag_this_uninit()) {
+ current_frame.flag_this_uninit() &&
+ !current_class()->is_interface()) {
verify_error(ErrorContext::bad_code(bci),
"Constructor must call super() or this() "
"before return");
--- a/hotspot/src/share/vm/gc/g1/g1CollectedHeap.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/gc/g1/g1CollectedHeap.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -73,13 +73,6 @@
size_t G1CollectedHeap::_humongous_object_threshold_in_words = 0;
-// turn it on so that the contents of the young list (scan-only /
-// to-be-collected) are printed at "strategic" points before / during
-// / after the collection --- this is useful for debugging
-#define YOUNG_LIST_VERBOSE 0
-// CURRENT STATUS
-// This file is under construction. Search for "FIXME".
-
// INVARIANTS/NOTES
//
// All allocation activity covered by the G1CollectedHeap interface is
@@ -4079,29 +4072,12 @@
// the possible verification above.
double sample_start_time_sec = os::elapsedTime();
-#if YOUNG_LIST_VERBOSE
- gclog_or_tty->print_cr("\nBefore recording pause start.\nYoung_list:");
- _young_list->print();
- g1_policy()->print_collection_set(g1_policy()->inc_cset_head(), gclog_or_tty);
-#endif // YOUNG_LIST_VERBOSE
-
g1_policy()->record_collection_pause_start(sample_start_time_sec);
-#if YOUNG_LIST_VERBOSE
- gclog_or_tty->print_cr("\nAfter recording pause start.\nYoung_list:");
- _young_list->print();
-#endif // YOUNG_LIST_VERBOSE
-
if (collector_state()->during_initial_mark_pause()) {
concurrent_mark()->checkpointRootsInitialPre();
}
-#if YOUNG_LIST_VERBOSE
- gclog_or_tty->print_cr("\nBefore choosing collection set.\nYoung_list:");
- _young_list->print();
- g1_policy()->print_collection_set(g1_policy()->inc_cset_head(), gclog_or_tty);
-#endif // YOUNG_LIST_VERBOSE
-
double time_remaining_ms = g1_policy()->finalize_young_cset_part(target_pause_time_ms);
g1_policy()->finalize_old_cset_part(time_remaining_ms);
@@ -4157,11 +4133,6 @@
assert(check_young_list_empty(false /* check_heap */),
"young list should be empty");
-#if YOUNG_LIST_VERBOSE
- gclog_or_tty->print_cr("Before recording survivors.\nYoung List:");
- _young_list->print();
-#endif // YOUNG_LIST_VERBOSE
-
g1_policy()->record_survivor_regions(_young_list->survivor_length(),
_young_list->first_survivor_region(),
_young_list->last_survivor_region());
@@ -4197,12 +4168,6 @@
allocate_dummy_regions();
-#if YOUNG_LIST_VERBOSE
- gclog_or_tty->print_cr("\nEnd of the pause.\nYoung_list:");
- _young_list->print();
- g1_policy()->print_collection_set(g1_policy()->inc_cset_head(), gclog_or_tty);
-#endif // YOUNG_LIST_VERBOSE
-
_allocator->init_mutator_alloc_region();
{
--- a/hotspot/src/share/vm/gc/g1/g1EvacStats.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/gc/g1/g1EvacStats.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -93,7 +93,7 @@
size_t const used_for_waste_calculation = used() > _region_end_waste ? used() - _region_end_waste : 0;
size_t const total_waste_allowed = used_for_waste_calculation * TargetPLABWastePct;
- size_t const cur_plab_sz = (double)total_waste_allowed / G1LastPLABAverageOccupancy;
+ size_t const cur_plab_sz = (size_t)((double)total_waste_allowed / G1LastPLABAverageOccupancy);
// Take historical weighted average
_filter.sample(cur_plab_sz);
// Clip from above and below, and align to object boundary
--- a/hotspot/src/share/vm/gc/shared/gcTrace.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/gc/shared/gcTrace.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -88,8 +88,6 @@
send_reference_stats_event(REF_WEAK, rps.weak_count());
send_reference_stats_event(REF_FINAL, rps.final_count());
send_reference_stats_event(REF_PHANTOM, rps.phantom_count());
- send_reference_stats_event(REF_CLEANER, rps.cleaner_count());
- send_reference_stats_event(REF_JNI, rps.jni_weak_ref_count());
}
#if INCLUDE_SERVICES
--- a/hotspot/src/share/vm/gc/shared/referenceProcessor.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/gc/shared/referenceProcessor.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -243,13 +243,10 @@
process_discovered_reflist(_discoveredPhantomRefs, NULL, false,
is_alive, keep_alive, complete_gc, task_executor);
- }
-
- // Cleaners
- size_t cleaner_count = 0;
- {
- GCTraceTime tt("Cleaners", trace_time, false, gc_timer, gc_id);
- cleaner_count =
+ // Process cleaners, but include them in phantom statistics. We expect
+ // Cleaner references to be temporary, and don't want to deal with
+ // possible incompatibilities arising from making it more visible.
+ phantom_count +=
process_discovered_reflist(_discoveredCleanerRefs, NULL, true,
is_alive, keep_alive, complete_gc, task_executor);
}
@@ -259,17 +256,15 @@
// that is not how the JDK1.2 specification is. See #4126360. Native code can
// thus use JNI weak references to circumvent the phantom references and
// resurrect a "post-mortem" object.
- size_t jni_weak_ref_count = 0;
{
GCTraceTime tt("JNI Weak Reference", trace_time, false, gc_timer, gc_id);
if (task_executor != NULL) {
task_executor->set_single_threaded_mode();
}
- jni_weak_ref_count =
- process_phaseJNI(is_alive, keep_alive, complete_gc);
+ process_phaseJNI(is_alive, keep_alive, complete_gc);
}
- return ReferenceProcessorStats(soft_count, weak_count, final_count, phantom_count, cleaner_count, jni_weak_ref_count);
+ return ReferenceProcessorStats(soft_count, weak_count, final_count, phantom_count);
}
#ifndef PRODUCT
@@ -296,17 +291,17 @@
}
#endif
-size_t ReferenceProcessor::process_phaseJNI(BoolObjectClosure* is_alive,
- OopClosure* keep_alive,
- VoidClosure* complete_gc) {
- DEBUG_ONLY(size_t check_count = count_jni_refs();)
- size_t count = JNIHandles::weak_oops_do(is_alive, keep_alive);
- assert(count == check_count, "Counts didn't match");
+void ReferenceProcessor::process_phaseJNI(BoolObjectClosure* is_alive,
+ OopClosure* keep_alive,
+ VoidClosure* complete_gc) {
+#ifndef PRODUCT
+ if (PrintGCDetails && PrintReferenceGC) {
+ unsigned int count = count_jni_refs();
+ gclog_or_tty->print(", %u refs", count);
+ }
+#endif
+ JNIHandles::weak_oops_do(is_alive, keep_alive);
complete_gc->do_void();
- if (PrintGCDetails && PrintReferenceGC) {
- gclog_or_tty->print(", " SIZE_FORMAT " refs", count);
- }
- return count;
}
@@ -946,10 +941,9 @@
list = &_discoveredCleanerRefs[id];
break;
case REF_NONE:
- case REF_JNI:
// we should not reach here if we are an InstanceRefKlass
default:
- guarantee(false, err_msg("rt should not be %d", rt));
+ ShouldNotReachHere();
}
if (TraceReferenceGC && PrintGCDetails) {
gclog_or_tty->print_cr("Thread %d gets list " INTPTR_FORMAT, id, p2i(list));
--- a/hotspot/src/share/vm/gc/shared/referenceProcessor.hpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/gc/shared/referenceProcessor.hpp Wed Jul 05 20:52:05 2017 +0200
@@ -247,7 +247,7 @@
DiscoveredList* _discoveredCleanerRefs;
public:
- static int number_of_subclasses_of_ref() { return REF_LISTS_COUNT; }
+ static int number_of_subclasses_of_ref() { return (REF_CLEANER - REF_OTHER); }
uint num_q() { return _num_q; }
uint max_num_q() { return _max_num_q; }
@@ -271,9 +271,9 @@
VoidClosure* complete_gc,
AbstractRefProcTaskExecutor* task_executor);
- size_t process_phaseJNI(BoolObjectClosure* is_alive,
- OopClosure* keep_alive,
- VoidClosure* complete_gc);
+ void process_phaseJNI(BoolObjectClosure* is_alive,
+ OopClosure* keep_alive,
+ VoidClosure* complete_gc);
// Work methods used by the method process_discovered_reflist
// Phase1: keep alive all those referents that are otherwise
--- a/hotspot/src/share/vm/gc/shared/referenceProcessorStats.hpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/gc/shared/referenceProcessorStats.hpp Wed Jul 05 20:52:05 2017 +0200
@@ -36,30 +36,22 @@
size_t _weak_count;
size_t _final_count;
size_t _phantom_count;
- size_t _cleaner_count;
- size_t _jni_weak_ref_count;
public:
ReferenceProcessorStats() :
_soft_count(0),
_weak_count(0),
_final_count(0),
- _phantom_count(0),
- _cleaner_count(0),
- _jni_weak_ref_count(0) {}
+ _phantom_count(0) {}
ReferenceProcessorStats(size_t soft_count,
size_t weak_count,
size_t final_count,
- size_t phantom_count,
- size_t cleaner_count,
- size_t jni_weak_ref_count) :
+ size_t phantom_count) :
_soft_count(soft_count),
_weak_count(weak_count),
_final_count(final_count),
- _phantom_count(phantom_count),
- _cleaner_count(cleaner_count),
- _jni_weak_ref_count(jni_weak_ref_count)
+ _phantom_count(phantom_count)
{}
size_t soft_count() const {
@@ -77,13 +69,5 @@
size_t phantom_count() const {
return _phantom_count;
}
-
- size_t cleaner_count() const {
- return _cleaner_count;
- }
-
- size_t jni_weak_ref_count() const {
- return _jni_weak_ref_count;
- }
};
#endif
--- a/hotspot/src/share/vm/memory/referenceType.hpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/memory/referenceType.hpp Wed Jul 05 20:52:05 2017 +0200
@@ -32,15 +32,11 @@
enum ReferenceType {
REF_NONE, // Regular class
REF_OTHER, // Subclass of java/lang/ref/Reference, but not subclass of one of the classes below
- ///////////////// Only the types below have their own discovered lists
REF_SOFT, // Subclass of java/lang/ref/SoftReference
REF_WEAK, // Subclass of java/lang/ref/WeakReference
REF_FINAL, // Subclass of java/lang/ref/FinalReference
REF_PHANTOM, // Subclass of java/lang/ref/PhantomReference
- REF_CLEANER, // Subclass of sun/misc/Cleaner
- ///////////////// Only the types in the above range have their own discovered lists
- REF_JNI, // JNI weak refs
- REF_LISTS_COUNT = REF_CLEANER - REF_OTHER // Number of discovered lists
+ REF_CLEANER // Subclass of sun/misc/Cleaner
};
#endif // SHARE_VM_MEMORY_REFERENCETYPE_HPP
--- a/hotspot/src/share/vm/oops/method.hpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/oops/method.hpp Wed Jul 05 20:52:05 2017 +0200
@@ -72,7 +72,7 @@
int _result_index; // C++ interpreter needs for converting results to/from stack
#endif
u2 _method_size; // size of this object
- u1 _intrinsic_id; // vmSymbols::intrinsic_id (0 == _none)
+ u2 _intrinsic_id; // vmSymbols::intrinsic_id (0 == _none)
// Flags
enum Flags {
@@ -653,7 +653,7 @@
// for code generation
static int method_data_offset_in_bytes() { return offset_of(Method, _method_data); }
static int intrinsic_id_offset_in_bytes() { return offset_of(Method, _intrinsic_id); }
- static int intrinsic_id_size_in_bytes() { return sizeof(u1); }
+ static int intrinsic_id_size_in_bytes() { return sizeof(u2); }
// Static methods that are used to implement member methods where an exposed this pointer
// is needed due to possible GCs
@@ -777,7 +777,7 @@
// Support for inlining of intrinsic methods
vmIntrinsics::ID intrinsic_id() const { return (vmIntrinsics::ID) _intrinsic_id; }
- void set_intrinsic_id(vmIntrinsics::ID id) { _intrinsic_id = (u1) id; }
+ void set_intrinsic_id(vmIntrinsics::ID id) { _intrinsic_id = (u2) id; }
// Helper routines for intrinsic_id() and vmIntrinsics::method().
void init_intrinsic_id(); // updates from _none if a match
--- a/hotspot/src/share/vm/prims/jvmtiExport.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/prims/jvmtiExport.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -2181,8 +2181,8 @@
JvmtiVMObjectAllocEventCollector::oops_do_for_all_threads(f);
}
-size_t JvmtiExport::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) {
- return JvmtiTagMap::weak_oops_do(is_alive, f);
+void JvmtiExport::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) {
+ JvmtiTagMap::weak_oops_do(is_alive, f);
}
void JvmtiExport::gc_epilogue() {
--- a/hotspot/src/share/vm/prims/jvmtiExport.hpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/prims/jvmtiExport.hpp Wed Jul 05 20:52:05 2017 +0200
@@ -366,7 +366,7 @@
static void clear_detected_exception (JavaThread* thread) NOT_JVMTI_RETURN;
static void oops_do(OopClosure* f) NOT_JVMTI_RETURN;
- static size_t weak_oops_do(BoolObjectClosure* b, OopClosure* f) NOT_JVMTI_RETURN_(0);
+ static void weak_oops_do(BoolObjectClosure* b, OopClosure* f) NOT_JVMTI_RETURN;
static void gc_epilogue() NOT_JVMTI_RETURN;
static void transition_pending_onload_raw_monitors() NOT_JVMTI_RETURN;
--- a/hotspot/src/share/vm/prims/jvmtiTagMap.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/prims/jvmtiTagMap.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -3284,35 +3284,32 @@
}
-size_t JvmtiTagMap::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) {
+void JvmtiTagMap::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) {
// No locks during VM bring-up (0 threads) and no safepoints after main
// thread creation and before VMThread creation (1 thread); initial GC
// verification can happen in that window which gets to here.
assert(Threads::number_of_threads() <= 1 ||
SafepointSynchronize::is_at_safepoint(),
"must be executed at a safepoint");
- size_t count = 0;
if (JvmtiEnv::environments_might_exist()) {
JvmtiEnvIterator it;
for (JvmtiEnvBase* env = it.first(); env != NULL; env = it.next(env)) {
JvmtiTagMap* tag_map = env->tag_map();
if (tag_map != NULL && !tag_map->is_empty()) {
- count += tag_map->do_weak_oops(is_alive, f);
+ tag_map->do_weak_oops(is_alive, f);
}
}
}
- return count;
}
-size_t JvmtiTagMap::do_weak_oops(BoolObjectClosure* is_alive, OopClosure* f) {
+void JvmtiTagMap::do_weak_oops(BoolObjectClosure* is_alive, OopClosure* f) {
// does this environment have the OBJECT_FREE event enabled
bool post_object_free = env()->is_enabled(JVMTI_EVENT_OBJECT_FREE);
// counters used for trace message
- size_t freed = 0;
- size_t moved = 0;
- size_t stayed = 0;
+ int freed = 0;
+ int moved = 0;
JvmtiTagHashmap* hashmap = this->hashmap();
@@ -3321,7 +3318,7 @@
// if the hashmap is empty then we can skip it
if (hashmap->_entry_count == 0) {
- return 0;
+ return;
}
// now iterate through each entry in the table
@@ -3383,7 +3380,6 @@
} else {
// object didn't move
prev = entry;
- stayed++;
}
}
@@ -3402,12 +3398,10 @@
// stats
if (TraceJVMTIObjectTagging) {
- size_t post_total = hashmap->_entry_count;
- size_t pre_total = post_total + freed;
-
- tty->print_cr("(" SIZE_FORMAT "->" SIZE_FORMAT ", " SIZE_FORMAT " freed, " SIZE_FORMAT " stayed, " SIZE_FORMAT " moved)",
- pre_total, post_total, freed, stayed, moved);
+ int post_total = hashmap->_entry_count;
+ int pre_total = post_total + freed;
+
+ tty->print_cr("(%d->%d, %d freed, %d total moves)",
+ pre_total, post_total, freed, moved);
}
-
- return (freed + stayed + moved);
}
--- a/hotspot/src/share/vm/prims/jvmtiTagMap.hpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/prims/jvmtiTagMap.hpp Wed Jul 05 20:52:05 2017 +0200
@@ -60,7 +60,7 @@
inline Mutex* lock() { return &_lock; }
inline JvmtiEnv* env() const { return _env; }
- size_t do_weak_oops(BoolObjectClosure* is_alive, OopClosure* f);
+ void do_weak_oops(BoolObjectClosure* is_alive, OopClosure* f);
// iterate over all entries in this tag map
void entry_iterate(JvmtiTagHashmapEntryClosure* closure);
@@ -122,8 +122,8 @@
jint* count_ptr, jobject** object_result_ptr,
jlong** tag_result_ptr);
- static size_t weak_oops_do(BoolObjectClosure* is_alive,
- OopClosure* f) NOT_JVMTI_RETURN_(0);
+ static void weak_oops_do(
+ BoolObjectClosure* is_alive, OopClosure* f) NOT_JVMTI_RETURN;
};
#endif // SHARE_VM_PRIMS_JVMTITAGMAP_HPP
--- a/hotspot/src/share/vm/runtime/arguments.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/runtime/arguments.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -118,7 +118,7 @@
// part of the option string.
static bool match_option(const JavaVMOption *option, const char* name,
const char** tail) {
- int len = (int)strlen(name);
+ size_t len = strlen(name);
if (strncmp(option->optionString, name, len) == 0) {
*tail = option->optionString + len;
return true;
@@ -219,11 +219,9 @@
void Arguments::init_version_specific_system_properties() {
enum { bufsz = 16 };
char buffer[bufsz];
- const char* spec_vendor = "Sun Microsystems Inc.";
- uint32_t spec_version = 0;
-
- spec_vendor = "Oracle Corporation";
- spec_version = JDK_Version::current().major_version();
+ const char* spec_vendor = "Oracle Corporation";
+ uint32_t spec_version = JDK_Version::current().major_version();
+
jio_snprintf(buffer, bufsz, "1." UINT32_FORMAT, spec_version);
PropertyList_add(&_system_properties,
@@ -234,75 +232,290 @@
new SystemProperty("java.vm.vendor", VM_Version::vm_vendor(), false));
}
-/**
- * Provide a slightly more user-friendly way of eliminating -XX flags.
- * When a flag is eliminated, it can be added to this list in order to
- * continue accepting this flag on the command-line, while issuing a warning
- * and ignoring the value. Once the JDK version reaches the 'accept_until'
- * limit, we flatly refuse to admit the existence of the flag. This allows
- * a flag to die correctly over JDK releases using HSX.
- * But now that HSX is no longer supported only options with a future
- * accept_until value need to be listed, and the list can be pruned
- * on each major release.
+/*
+ * -XX argument processing:
+ *
+ * -XX arguments are defined in several places, such as:
+ * globals.hpp, globals_<cpu>.hpp, globals_<os>.hpp, <compiler>_globals.hpp, or <gc>_globals.hpp.
+ * -XX arguments are parsed in parse_argument().
+ * -XX argument bounds checking is done in check_vm_args_consistency().
+ *
+ * Over time -XX arguments may change. There are mechanisms to handle common cases:
+ *
+ * ALIASED: An option that is simply another name for another option. This is often
+ * part of the process of deprecating a flag, but not all aliases need
+ * to be deprecated.
+ *
+ * Create an alias for an option by adding the old and new option names to the
+ * "aliased_jvm_flags" table. Delete the old variable from globals.hpp (etc).
+ *
+ * DEPRECATED: An option that is supported, but a warning is printed to let the user know that
+ * support may be removed in the future. Both regular and aliased options may be
+ * deprecated.
+ *
+ * Add a deprecation warning for an option (or alias) by adding an entry in the
+ * "special_jvm_flags" table and setting the "deprecated_in" field.
+ * Often an option "deprecated" in one major release will
+ * be made "obsolete" in the next. In this case the entry should also have it's
+ * "obsolete_in" field set.
+ *
+ * OBSOLETE: An option that has been removed (and deleted from globals.hpp), but is still accepted
+ * on the command line. A warning is printed to let the user know that option might not
+ * be accepted in the future.
+ *
+ * Add an obsolete warning for an option by adding an entry in the "special_jvm_flags"
+ * table and setting the "obsolete_in" field.
+ *
+ * EXPIRED: A deprecated or obsolete option that has an "accept_until" version less than or equal
+ * to the current JDK version. The system will flatly refuse to admit the existence of
+ * the flag. This allows a flag to die automatically over JDK releases.
+ *
+ * Note that manual cleanup of expired options should be done at major JDK version upgrades:
+ * - Newly expired options should be removed from the special_jvm_flags and aliased_jvm_flags tables.
+ * - Newly obsolete or expired deprecated options should have their global variable
+ * definitions removed (from globals.hpp, etc) and related implementations removed.
+ *
+ * Recommended approach for removing options:
+ *
+ * To remove options commonly used by customers (e.g. product, commercial -XX options), use
+ * the 3-step model adding major release numbers to the deprecate, obsolete and expire columns.
+ *
+ * To remove internal options (e.g. diagnostic, experimental, develop options), use
+ * a 2-step model adding major release numbers to the obsolete and expire columns.
+ *
+ * To change the name of an option, use the alias table as well as a 2-step
+ * model adding major release numbers to the deprecate and expire columns.
+ * Think twice about aliasing commonly used customer options.
+ *
+ * There are times when it is appropriate to leave a future release number as undefined.
+ *
+ * Tests: Aliases should be tested in VMAliasOptions.java.
+ * Deprecated options should be tested in VMDeprecatedOptions.java.
*/
+
+// Obsolete or deprecated -XX flag.
typedef struct {
const char* name;
- JDK_Version obsoleted_in; // when the flag went away
- JDK_Version accept_until; // which version to start denying the existence
-} ObsoleteFlag;
-
-static ObsoleteFlag obsolete_jvm_flags[] = {
- { "UseOldInlining", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "SafepointPollOffset", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "UseBoundThreads", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "DefaultThreadPriority", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "NoYieldsInMicrolock", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "BackEdgeThreshold", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "UseNewReflection", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "ReflectionWrapResolutionErrors",JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "VerifyReflectionBytecodes", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "AutoShutdownNMT", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "NmethodSweepFraction", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "NmethodSweepCheckInterval", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "CodeCacheMinimumFreeSpace", JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ JDK_Version deprecated_in; // When the deprecation warning started (or "undefined").
+ JDK_Version obsolete_in; // When the obsolete warning started (or "undefined").
+ JDK_Version expired_in; // When the option expires (or "undefined").
+} SpecialFlag;
+
+// The special_jvm_flags table declares options that are being deprecated and/or obsoleted. The
+// "deprecated_in" or "obsolete_in" fields may be set to "undefined", but not both.
+// When the JDK version reaches 'deprecated_in' limit, the JVM will process this flag on
+// the command-line as usual, but will issue a warning.
+// When the JDK version reaches 'obsolete_in' limit, the JVM will continue accepting this flag on
+// the command-line, while issuing a warning and ignoring the flag value.
+// Once the JDK version reaches 'expired_in' limit, the JVM will flatly refuse to admit the
+// existence of the flag.
+//
+// MANUAL CLEANUP ON JDK VERSION UPDATES:
+// This table ensures that the handling of options will update automatically when the JDK
+// version is incremented, but the source code needs to be cleanup up manually:
+// - As "deprecated" options age into "obsolete" or "expired" options, the associated "globals"
+// variable should be removed, as well as users of the variable.
+// - As "deprecated" options age into "obsolete" options, move the entry into the
+// "Obsolete Flags" section of the table.
+// - All expired options should be removed from the table.
+static SpecialFlag const special_jvm_flags[] = {
+ // -------------- Deprecated Flags --------------
+ // --- Non-alias flags - sorted by obsolete_in then expired_in:
+ { "MaxGCMinorPauseMillis", JDK_Version::jdk(8), JDK_Version::undefined(), JDK_Version::undefined() },
+ { "UseParNewGC", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
+
+ // --- Deprecated alias flags (see also aliased_jvm_flags) - sorted by obsolete_in then expired_in:
+ { "DefaultMaxRAMFraction", JDK_Version::jdk(8), JDK_Version::undefined(), JDK_Version::undefined() },
+ { "CreateMinidumpOnCrash", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::undefined() },
+ { "CMSMarkStackSizeMax", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
+ { "CMSMarkStackSize", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
+ { "G1MarkStackSize", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
+ { "ParallelMarkingThreads", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
+ { "ParallelCMSThreads", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
+
+ // -------------- Obsolete Flags - sorted by expired_in --------------
+ { "UseOldInlining", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "SafepointPollOffset", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "UseBoundThreads", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "DefaultThreadPriority", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "NoYieldsInMicrolock", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "BackEdgeThreshold", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "UseNewReflection", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "ReflectionWrapResolutionErrors",JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "VerifyReflectionBytecodes", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "AutoShutdownNMT", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "NmethodSweepFraction", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "NmethodSweepCheckInterval", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "CodeCacheMinimumFreeSpace", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
#ifndef ZERO
- { "UseFastAccessorMethods", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "UseFastEmptyMethods", JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "UseFastAccessorMethods", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "UseFastEmptyMethods", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
#endif // ZERO
- { "UseCompilerSafepoints", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "AdaptiveSizePausePolicy", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "ParallelGCRetainPLAB", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "ThreadSafetyMargin", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "LazyBootClassLoader", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "StarvationMonitorInterval", JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "PreInflateSpin", JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "UseCompilerSafepoints", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "AdaptiveSizePausePolicy", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "ParallelGCRetainPLAB", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "ThreadSafetyMargin", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "LazyBootClassLoader", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "StarvationMonitorInterval", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+ { "PreInflateSpin", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
+
+#ifdef TEST_VERIFY_SPECIAL_JVM_FLAGS
+ { "dep > obs", JDK_Version::jdk(9), JDK_Version::jdk(8), JDK_Version::undefined() },
+ { "dep > exp ", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(8) },
+ { "obs > exp ", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(8) },
+ { "not deprecated or obsolete", JDK_Version::undefined(), JDK_Version::undefined(), JDK_Version::jdk(9) },
+ { "dup option", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::undefined() },
+ { "dup option", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::undefined() },
+ { "BytecodeVerificationRemote", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::undefined() },
+#endif
+
{ NULL, JDK_Version(0), JDK_Version(0) }
};
-// Returns true if the flag is obsolete and fits into the range specified
-// for being ignored. In the case that the flag is ignored, the 'version'
-// value is filled in with the version number when the flag became
-// obsolete so that that value can be displayed to the user.
-bool Arguments::is_newly_obsolete(const char *s, JDK_Version* version) {
- int i = 0;
- assert(version != NULL, "Must provide a version buffer");
- while (obsolete_jvm_flags[i].name != NULL) {
- const ObsoleteFlag& flag_status = obsolete_jvm_flags[i];
- // <flag>=xxx form
- // [-|+]<flag> form
- size_t len = strlen(flag_status.name);
- if ((strncmp(flag_status.name, s, len) == 0) &&
- (strlen(s) == len)){
- if (JDK_Version::current().compare(flag_status.accept_until) == -1) {
- *version = flag_status.obsoleted_in;
- return true;
- }
+// Flags that are aliases for other flags.
+typedef struct {
+ const char* alias_name;
+ const char* real_name;
+} AliasedFlag;
+
+static AliasedFlag const aliased_jvm_flags[] = {
+ { "DefaultMaxRAMFraction", "MaxRAMFraction" },
+ { "CMSMarkStackSizeMax", "MarkStackSizeMax" },
+ { "CMSMarkStackSize", "MarkStackSize" },
+ { "G1MarkStackSize", "MarkStackSize" },
+ { "ParallelMarkingThreads", "ConcGCThreads" },
+ { "ParallelCMSThreads", "ConcGCThreads" },
+ { "CreateMinidumpOnCrash", "CreateCoredumpOnCrash" },
+ { NULL, NULL}
+};
+
+// Return true if "v" is less than "other", where "other" may be "undefined".
+static bool version_less_than(JDK_Version v, JDK_Version other) {
+ assert(!v.is_undefined(), "must be defined");
+ if (!other.is_undefined() && v.compare(other) >= 0) {
+ return false;
+ } else {
+ return true;
+ }
+}
+
+static bool lookup_special_flag(const char *flag_name, SpecialFlag& flag) {
+ for (size_t i = 0; special_jvm_flags[i].name != NULL; i++) {
+ if ((strcmp(special_jvm_flags[i].name, flag_name) == 0)) {
+ flag = special_jvm_flags[i];
+ return true;
}
- i++;
}
return false;
}
+bool Arguments::is_obsolete_flag(const char *flag_name, JDK_Version* version) {
+ assert(version != NULL, "Must provide a version buffer");
+ SpecialFlag flag;
+ if (lookup_special_flag(flag_name, flag)) {
+ if (!flag.obsolete_in.is_undefined()) {
+ if (version_less_than(JDK_Version::current(), flag.expired_in)) {
+ *version = flag.obsolete_in;
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+int Arguments::is_deprecated_flag(const char *flag_name, JDK_Version* version) {
+ assert(version != NULL, "Must provide a version buffer");
+ SpecialFlag flag;
+ if (lookup_special_flag(flag_name, flag)) {
+ if (!flag.deprecated_in.is_undefined()) {
+ if (version_less_than(JDK_Version::current(), flag.obsolete_in) &&
+ version_less_than(JDK_Version::current(), flag.expired_in)) {
+ *version = flag.deprecated_in;
+ return 1;
+ } else {
+ return -1;
+ }
+ }
+ }
+ return 0;
+}
+
+const char* Arguments::real_flag_name(const char *flag_name) {
+ for (size_t i = 0; aliased_jvm_flags[i].alias_name != NULL; i++) {
+ const AliasedFlag& flag_status = aliased_jvm_flags[i];
+ if (strcmp(flag_status.alias_name, flag_name) == 0) {
+ return flag_status.real_name;
+ }
+ }
+ return flag_name;
+}
+
+#ifndef PRODUCT
+static bool lookup_special_flag(const char *flag_name, size_t skip_index) {
+ for (size_t i = 0; special_jvm_flags[i].name != NULL; i++) {
+ if ((i != skip_index) && (strcmp(special_jvm_flags[i].name, flag_name) == 0)) {
+ return true;
+ }
+ }
+ return false;
+}
+
+static bool verify_special_jvm_flags() {
+ bool success = true;
+ for (size_t i = 0; special_jvm_flags[i].name != NULL; i++) {
+ const SpecialFlag& flag = special_jvm_flags[i];
+ if (lookup_special_flag(flag.name, i)) {
+ warning("Duplicate special flag declaration \"%s\"", flag.name);
+ success = false;
+ }
+ if (flag.deprecated_in.is_undefined() &&
+ flag.obsolete_in.is_undefined()) {
+ warning("Special flag entry \"%s\" must declare version deprecated and/or obsoleted in.", flag.name);
+ success = false;
+ }
+
+ if (!flag.deprecated_in.is_undefined()) {
+ if (!version_less_than(flag.deprecated_in, flag.obsolete_in)) {
+ warning("Special flag entry \"%s\" must be deprecated before obsoleted.", flag.name);
+ success = false;
+ }
+
+ if (!version_less_than(flag.deprecated_in, flag.expired_in)) {
+ warning("Special flag entry \"%s\" must be deprecated before expired.", flag.name);
+ success = false;
+ }
+ }
+
+ if (!flag.obsolete_in.is_undefined()) {
+ if (!version_less_than(flag.obsolete_in, flag.expired_in)) {
+ warning("Special flag entry \"%s\" must be obsoleted before expired.", flag.name);
+ success = false;
+ }
+
+ // if flag has become obsolete it should not have a "globals" flag defined anymore.
+ if (!version_less_than(JDK_Version::current(), flag.obsolete_in)) {
+ if (Flag::find_flag(flag.name) != NULL) {
+ warning("Global variable for obsolete special flag entry \"%s\" should be removed", flag.name);
+ success = false;
+ }
+ }
+ }
+
+ if (!flag.expired_in.is_undefined()) {
+ // if flag has become expired it should not have a "globals" flag defined anymore.
+ if (!version_less_than(JDK_Version::current(), flag.expired_in)) {
+ if (Flag::find_flag(flag.name) != NULL) {
+ warning("Global variable for expired flag entry \"%s\" should be removed", flag.name);
+ success = false;
+ }
+ }
+ }
+
+ }
+ return success;
+}
+#endif
+
// Constructs the system class path (aka boot class path) from the following
// components, in order:
//
@@ -571,7 +784,7 @@
}
}
-static bool set_bool_flag(char* name, bool value, Flag::Flags origin) {
+static bool set_bool_flag(const char* name, bool value, Flag::Flags origin) {
if (CommandLineFlags::boolAtPut(name, &value, origin) == Flag::SUCCESS) {
return true;
} else {
@@ -579,7 +792,7 @@
}
}
-static bool set_fp_numeric_flag(char* name, char* value, Flag::Flags origin) {
+static bool set_fp_numeric_flag(const char* name, char* value, Flag::Flags origin) {
double v;
if (sscanf(value, "%lf", &v) != 1) {
return false;
@@ -591,7 +804,7 @@
return false;
}
-static bool set_numeric_flag(char* name, char* value, Flag::Flags origin) {
+static bool set_numeric_flag(const char* name, char* value, Flag::Flags origin) {
julong v;
int int_v;
intx intx_v;
@@ -640,14 +853,14 @@
return false;
}
-static bool set_string_flag(char* name, const char* value, Flag::Flags origin) {
+static bool set_string_flag(const char* name, const char* value, Flag::Flags origin) {
if (CommandLineFlags::ccstrAtPut(name, &value, origin) != Flag::SUCCESS) return false;
// Contract: CommandLineFlags always returns a pointer that needs freeing.
FREE_C_HEAP_ARRAY(char, value);
return true;
}
-static bool append_to_string_flag(char* name, const char* new_value, Flag::Flags origin) {
+static bool append_to_string_flag(const char* name, const char* new_value, Flag::Flags origin) {
const char* old_value = "";
if (CommandLineFlags::ccstrAt(name, &old_value) != Flag::SUCCESS) return false;
size_t old_len = old_value != NULL ? strlen(old_value) : 0;
@@ -675,6 +888,33 @@
return true;
}
+const char* Arguments::handle_aliases_and_deprecation(const char* arg, bool warn) {
+ const char* real_name = real_flag_name(arg);
+ JDK_Version since = JDK_Version();
+ switch (is_deprecated_flag(arg, &since)) {
+ case -1:
+ return NULL; // obsolete or expired, don't process normally
+ case 0:
+ return real_name;
+ case 1: {
+ if (warn) {
+ char version[256];
+ since.to_string(version, sizeof(version));
+ if (real_name != arg) {
+ warning("Option %s was deprecated in version %s and will likely be removed in a future release. Use option %s instead.",
+ arg, version, real_name);
+ } else {
+ warning("Option %s was deprecated in version %s and will likely be removed in a future release.",
+ arg, version);
+ }
+ }
+ return real_name;
+ }
+ }
+ ShouldNotReachHere();
+ return NULL;
+}
+
bool Arguments::parse_argument(const char* arg, Flag::Flags origin) {
// range of acceptable characters spelled out for portability reasons
@@ -682,27 +922,46 @@
#define BUFLEN 255
char name[BUFLEN+1];
char dummy;
+ const char* real_name;
+ bool warn_if_deprecated = true;
if (sscanf(arg, "-%" XSTR(BUFLEN) NAME_RANGE "%c", name, &dummy) == 1) {
- return set_bool_flag(name, false, origin);
+ real_name = handle_aliases_and_deprecation(name, warn_if_deprecated);
+ if (real_name == NULL) {
+ return false;
+ }
+ return set_bool_flag(real_name, false, origin);
}
if (sscanf(arg, "+%" XSTR(BUFLEN) NAME_RANGE "%c", name, &dummy) == 1) {
- return set_bool_flag(name, true, origin);
+ real_name = handle_aliases_and_deprecation(name, warn_if_deprecated);
+ if (real_name == NULL) {
+ return false;
+ }
+ return set_bool_flag(real_name, true, origin);
}
char punct;
if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "%c", name, &punct) == 2 && punct == '=') {
const char* value = strchr(arg, '=') + 1;
- Flag* flag = Flag::find_flag(name, strlen(name));
+ Flag* flag;
+
+ // this scanf pattern matches both strings (handled here) and numbers (handled later))
+ real_name = handle_aliases_and_deprecation(name, warn_if_deprecated);
+ if (real_name == NULL) {
+ return false;
+ }
+ flag = Flag::find_flag(real_name);
if (flag != NULL && flag->is_ccstr()) {
if (flag->ccstr_accumulates()) {
- return append_to_string_flag(name, value, origin);
+ return append_to_string_flag(real_name, value, origin);
} else {
if (value[0] == '\0') {
value = NULL;
}
- return set_string_flag(name, value, origin);
+ return set_string_flag(real_name, value, origin);
}
+ } else {
+ warn_if_deprecated = false; // if arg is deprecated, we've already done warning...
}
}
@@ -712,7 +971,11 @@
if (value[0] == '\0') {
value = NULL;
}
- return set_string_flag(name, value, origin);
+ real_name = handle_aliases_and_deprecation(name, warn_if_deprecated);
+ if (real_name == NULL) {
+ return false;
+ }
+ return set_string_flag(real_name, value, origin);
}
#define SIGNED_FP_NUMBER_RANGE "[-0123456789.]"
@@ -723,13 +986,21 @@
if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "=" "%" XSTR(BUFLEN) SIGNED_NUMBER_RANGE "." "%" XSTR(BUFLEN) NUMBER_RANGE "%c", name, value, value2, &dummy) == 3) {
// Looks like a floating-point number -- try again with more lenient format string
if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "=" "%" XSTR(BUFLEN) SIGNED_FP_NUMBER_RANGE "%c", name, value, &dummy) == 2) {
- return set_fp_numeric_flag(name, value, origin);
+ real_name = handle_aliases_and_deprecation(name, warn_if_deprecated);
+ if (real_name == NULL) {
+ return false;
+ }
+ return set_fp_numeric_flag(real_name, value, origin);
}
}
#define VALUE_RANGE "[-kmgtxKMGTX0123456789abcdefABCDEF]"
if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "=" "%" XSTR(BUFLEN) VALUE_RANGE "%c", name, value, &dummy) == 2) {
- return set_numeric_flag(name, value, origin);
+ real_name = handle_aliases_and_deprecation(name, warn_if_deprecated);
+ if (real_name == NULL) {
+ return false;
+ }
+ return set_numeric_flag(real_name, value, origin);
}
return false;
@@ -837,8 +1108,8 @@
}
bool Arguments::process_argument(const char* arg,
- jboolean ignore_unrecognized, Flag::Flags origin) {
-
+ jboolean ignore_unrecognized,
+ Flag::Flags origin) {
JDK_Version since = JDK_Version();
if (parse_argument(arg, origin) || ignore_unrecognized) {
@@ -864,10 +1135,10 @@
strncpy(stripped_argname, argname, arg_len);
stripped_argname[arg_len] = '\0'; // strncpy may not null terminate.
- if (is_newly_obsolete(stripped_argname, &since)) {
+ if (is_obsolete_flag(stripped_argname, &since)) {
char version[256];
since.to_string(version, sizeof(version));
- warning("ignoring option %s; support was removed in %s", stripped_argname, version);
+ warning("Ignoring option %s; support was removed in %s", stripped_argname, version);
return true;
}
}
@@ -1235,7 +1506,7 @@
static void disable_adaptive_size_policy(const char* collector_name) {
if (UseAdaptiveSizePolicy) {
if (FLAG_IS_CMDLINE(UseAdaptiveSizePolicy)) {
- warning("disabling UseAdaptiveSizePolicy; it is incompatible with %s.",
+ warning("Disabling UseAdaptiveSizePolicy; it is incompatible with %s.",
collector_name);
}
FLAG_SET_DEFAULT(UseAdaptiveSizePolicy, false);
@@ -1707,7 +1978,6 @@
} else if (UseG1GC) {
set_g1_gc_flags();
}
- check_deprecated_gc_flags();
if (AssumeMP && !UseSerialGC) {
if (FLAG_IS_DEFAULT(ParallelGCThreads) && ParallelGCThreads == 1) {
warning("If the number of processors is expected to increase from one, then"
@@ -1737,11 +2007,6 @@
static const size_t DefaultHeapBaseMinAddress = HeapBaseMinAddress;
void Arguments::set_heap_size() {
- if (!FLAG_IS_DEFAULT(DefaultMaxRAMFraction)) {
- // Deprecated flag
- FLAG_SET_CMDLINE(uintx, MaxRAMFraction, DefaultMaxRAMFraction);
- }
-
const julong phys_mem =
FLAG_IS_DEFAULT(MaxRAM) ? MIN2(os::physical_memory(), (julong)MaxRAM)
: (julong)MaxRAM;
@@ -1844,6 +2109,122 @@
}
}
+// This option inspects the machine and attempts to set various
+// parameters to be optimal for long-running, memory allocation
+// intensive jobs. It is intended for machines with large
+// amounts of cpu and memory.
+jint Arguments::set_aggressive_heap_flags() {
+ // initHeapSize is needed since _initial_heap_size is 4 bytes on a 32 bit
+ // VM, but we may not be able to represent the total physical memory
+ // available (like having 8gb of memory on a box but using a 32bit VM).
+ // Thus, we need to make sure we're using a julong for intermediate
+ // calculations.
+ julong initHeapSize;
+ julong total_memory = os::physical_memory();
+
+ if (total_memory < (julong) 256 * M) {
+ jio_fprintf(defaultStream::error_stream(),
+ "You need at least 256mb of memory to use -XX:+AggressiveHeap\n");
+ vm_exit(1);
+ }
+
+ // The heap size is half of available memory, or (at most)
+ // all of possible memory less 160mb (leaving room for the OS
+ // when using ISM). This is the maximum; because adaptive sizing
+ // is turned on below, the actual space used may be smaller.
+
+ initHeapSize = MIN2(total_memory / (julong) 2,
+ total_memory - (julong) 160 * M);
+
+ initHeapSize = limit_by_allocatable_memory(initHeapSize);
+
+ if (FLAG_IS_DEFAULT(MaxHeapSize)) {
+ if (FLAG_SET_CMDLINE(size_t, MaxHeapSize, initHeapSize) != Flag::SUCCESS) {
+ return JNI_EINVAL;
+ }
+ if (FLAG_SET_CMDLINE(size_t, InitialHeapSize, initHeapSize) != Flag::SUCCESS) {
+ return JNI_EINVAL;
+ }
+ // Currently the minimum size and the initial heap sizes are the same.
+ set_min_heap_size(initHeapSize);
+ }
+ if (FLAG_IS_DEFAULT(NewSize)) {
+ // Make the young generation 3/8ths of the total heap.
+ if (FLAG_SET_CMDLINE(size_t, NewSize,
+ ((julong) MaxHeapSize / (julong) 8) * (julong) 3) != Flag::SUCCESS) {
+ return JNI_EINVAL;
+ }
+ if (FLAG_SET_CMDLINE(size_t, MaxNewSize, NewSize) != Flag::SUCCESS) {
+ return JNI_EINVAL;
+ }
+ }
+
+#if !defined(_ALLBSD_SOURCE) && !defined(AIX) // UseLargePages is not yet supported on BSD and AIX.
+ FLAG_SET_DEFAULT(UseLargePages, true);
+#endif
+
+ // Increase some data structure sizes for efficiency
+ if (FLAG_SET_CMDLINE(size_t, BaseFootPrintEstimate, MaxHeapSize) != Flag::SUCCESS) {
+ return JNI_EINVAL;
+ }
+ if (FLAG_SET_CMDLINE(bool, ResizeTLAB, false) != Flag::SUCCESS) {
+ return JNI_EINVAL;
+ }
+ if (FLAG_SET_CMDLINE(size_t, TLABSize, 256 * K) != Flag::SUCCESS) {
+ return JNI_EINVAL;
+ }
+
+ // See the OldPLABSize comment below, but replace 'after promotion'
+ // with 'after copying'. YoungPLABSize is the size of the survivor
+ // space per-gc-thread buffers. The default is 4kw.
+ if (FLAG_SET_CMDLINE(size_t, YoungPLABSize, 256 * K) != Flag::SUCCESS) { // Note: this is in words
+ return JNI_EINVAL;
+ }
+
+ // OldPLABSize is the size of the buffers in the old gen that
+ // UseParallelGC uses to promote live data that doesn't fit in the
+ // survivor spaces. At any given time, there's one for each gc thread.
+ // The default size is 1kw. These buffers are rarely used, since the
+ // survivor spaces are usually big enough. For specjbb, however, there
+ // are occasions when there's lots of live data in the young gen
+ // and we end up promoting some of it. We don't have a definite
+ // explanation for why bumping OldPLABSize helps, but the theory
+ // is that a bigger PLAB results in retaining something like the
+ // original allocation order after promotion, which improves mutator
+ // locality. A minor effect may be that larger PLABs reduce the
+ // number of PLAB allocation events during gc. The value of 8kw
+ // was arrived at by experimenting with specjbb.
+ if (FLAG_SET_CMDLINE(size_t, OldPLABSize, 8 * K) != Flag::SUCCESS) { // Note: this is in words
+ return JNI_EINVAL;
+ }
+
+ // Enable parallel GC and adaptive generation sizing
+ if (FLAG_SET_CMDLINE(bool, UseParallelGC, true) != Flag::SUCCESS) {
+ return JNI_EINVAL;
+ }
+ FLAG_SET_DEFAULT(ParallelGCThreads,
+ Abstract_VM_Version::parallel_worker_threads());
+
+ // Encourage steady state memory management
+ if (FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100) != Flag::SUCCESS) {
+ return JNI_EINVAL;
+ }
+
+ // This appears to improve mutator locality
+ if (FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false) != Flag::SUCCESS) {
+ return JNI_EINVAL;
+ }
+
+ // Get around early Solaris scheduling bug
+ // (affinity vs other jobs on system)
+ // but disallow DR and offlining (5008695).
+ if (FLAG_SET_CMDLINE(bool, BindGCTaskThreadsToCPUs, true) != Flag::SUCCESS) {
+ return JNI_EINVAL;
+ }
+
+ return JNI_OK;
+}
+
// This must be called after ergonomics.
void Arguments::set_bytecode_flags() {
if (!RewriteBytecodes) {
@@ -2027,20 +2408,6 @@
return true;
}
-void Arguments::check_deprecated_gc_flags() {
- if (FLAG_IS_CMDLINE(UseParNewGC)) {
- warning("The UseParNewGC flag is deprecated and will likely be removed in a future release");
- }
- if (FLAG_IS_CMDLINE(MaxGCMinorPauseMillis)) {
- warning("Using MaxGCMinorPauseMillis as minor pause goal is deprecated"
- "and will likely be removed in future release");
- }
- if (FLAG_IS_CMDLINE(DefaultMaxRAMFraction)) {
- warning("DefaultMaxRAMFraction is deprecated and will likely be removed in a future release. "
- "Use MaxRAMFraction instead.");
- }
-}
-
// Check the consistency of vm_init_args
bool Arguments::check_vm_args_consistency() {
// Method for adding checks for flag consistency.
@@ -2576,7 +2943,7 @@
// All these options are deprecated in JDK 9 and will be removed in a future release
char version[256];
JDK_Version::jdk(9).to_string(version, sizeof(version));
- warning("ignoring option %s; support was removed in %s", option->optionString, version);
+ warning("Ignoring option %s; support was removed in %s", option->optionString, version);
} else if (match_option(option, "-XX:CodeCacheExpansionSize=", &tail)) {
julong long_CodeCacheExpansionSize = 0;
ArgsRange errcode = parse_memory_size(tail, &long_CodeCacheExpansionSize, os::vm_page_size());
@@ -2843,120 +3210,10 @@
_abort_hook = CAST_TO_FN_PTR(abort_hook_t, option->extraInfo);
// -XX:+AggressiveHeap
} else if (match_option(option, "-XX:+AggressiveHeap")) {
-
- // This option inspects the machine and attempts to set various
- // parameters to be optimal for long-running, memory allocation
- // intensive jobs. It is intended for machines with large
- // amounts of cpu and memory.
-
- // initHeapSize is needed since _initial_heap_size is 4 bytes on a 32 bit
- // VM, but we may not be able to represent the total physical memory
- // available (like having 8gb of memory on a box but using a 32bit VM).
- // Thus, we need to make sure we're using a julong for intermediate
- // calculations.
- julong initHeapSize;
- julong total_memory = os::physical_memory();
-
- if (total_memory < (julong)256*M) {
- jio_fprintf(defaultStream::error_stream(),
- "You need at least 256mb of memory to use -XX:+AggressiveHeap\n");
- vm_exit(1);
- }
-
- // The heap size is half of available memory, or (at most)
- // all of possible memory less 160mb (leaving room for the OS
- // when using ISM). This is the maximum; because adaptive sizing
- // is turned on below, the actual space used may be smaller.
-
- initHeapSize = MIN2(total_memory / (julong)2,
- total_memory - (julong)160*M);
-
- initHeapSize = limit_by_allocatable_memory(initHeapSize);
-
- if (FLAG_IS_DEFAULT(MaxHeapSize)) {
- if (FLAG_SET_CMDLINE(size_t, MaxHeapSize, initHeapSize) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
- if (FLAG_SET_CMDLINE(size_t, InitialHeapSize, initHeapSize) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
- // Currently the minimum size and the initial heap sizes are the same.
- set_min_heap_size(initHeapSize);
- }
- if (FLAG_IS_DEFAULT(NewSize)) {
- // Make the young generation 3/8ths of the total heap.
- if (FLAG_SET_CMDLINE(size_t, NewSize,
- ((julong)MaxHeapSize / (julong)8) * (julong)3) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
- if (FLAG_SET_CMDLINE(size_t, MaxNewSize, NewSize) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
+ jint result = set_aggressive_heap_flags();
+ if (result != JNI_OK) {
+ return result;
}
-
-#if !defined(_ALLBSD_SOURCE) && !defined(AIX) // UseLargePages is not yet supported on BSD and AIX.
- FLAG_SET_DEFAULT(UseLargePages, true);
-#endif
-
- // Increase some data structure sizes for efficiency
- if (FLAG_SET_CMDLINE(size_t, BaseFootPrintEstimate, MaxHeapSize) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
- if (FLAG_SET_CMDLINE(bool, ResizeTLAB, false) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
- if (FLAG_SET_CMDLINE(size_t, TLABSize, 256*K) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
-
- // See the OldPLABSize comment below, but replace 'after promotion'
- // with 'after copying'. YoungPLABSize is the size of the survivor
- // space per-gc-thread buffers. The default is 4kw.
- if (FLAG_SET_CMDLINE(size_t, YoungPLABSize, 256*K) != Flag::SUCCESS) { // Note: this is in words
- return JNI_EINVAL;
- }
-
- // OldPLABSize is the size of the buffers in the old gen that
- // UseParallelGC uses to promote live data that doesn't fit in the
- // survivor spaces. At any given time, there's one for each gc thread.
- // The default size is 1kw. These buffers are rarely used, since the
- // survivor spaces are usually big enough. For specjbb, however, there
- // are occasions when there's lots of live data in the young gen
- // and we end up promoting some of it. We don't have a definite
- // explanation for why bumping OldPLABSize helps, but the theory
- // is that a bigger PLAB results in retaining something like the
- // original allocation order after promotion, which improves mutator
- // locality. A minor effect may be that larger PLABs reduce the
- // number of PLAB allocation events during gc. The value of 8kw
- // was arrived at by experimenting with specjbb.
- if (FLAG_SET_CMDLINE(size_t, OldPLABSize, 8*K) != Flag::SUCCESS) { // Note: this is in words
- return JNI_EINVAL;
- }
-
- // Enable parallel GC and adaptive generation sizing
- if (FLAG_SET_CMDLINE(bool, UseParallelGC, true) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
- FLAG_SET_DEFAULT(ParallelGCThreads,
- Abstract_VM_Version::parallel_worker_threads());
-
- // Encourage steady state memory management
- if (FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
-
- // This appears to improve mutator locality
- if (FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
-
- // Get around early Solaris scheduling bug
- // (affinity vs other jobs on system)
- // but disallow DR and offlining (5008695).
- if (FLAG_SET_CMDLINE(bool, BindGCTaskThreadsToCPUs, true) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
-
// Need to keep consistency of MaxTenuringThreshold and AlwaysTenure/NeverTenure;
// and the last option wins.
} else if (match_option(option, "-XX:+NeverTenure")) {
@@ -3049,52 +3306,6 @@
return JNI_EINVAL;
}
#endif
- } else if (match_option(option, "-XX:CMSMarkStackSize=", &tail) ||
- match_option(option, "-XX:G1MarkStackSize=", &tail)) {
- julong stack_size = 0;
- ArgsRange errcode = parse_memory_size(tail, &stack_size, 1);
- if (errcode != arg_in_range) {
- jio_fprintf(defaultStream::error_stream(),
- "Invalid mark stack size: %s\n", option->optionString);
- describe_range_error(errcode);
- return JNI_EINVAL;
- }
- jio_fprintf(defaultStream::error_stream(),
- "Please use -XX:MarkStackSize in place of "
- "-XX:CMSMarkStackSize or -XX:G1MarkStackSize in the future\n");
- if (FLAG_SET_CMDLINE(size_t, MarkStackSize, stack_size) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
- } else if (match_option(option, "-XX:CMSMarkStackSizeMax=", &tail)) {
- julong max_stack_size = 0;
- ArgsRange errcode = parse_memory_size(tail, &max_stack_size, 1);
- if (errcode != arg_in_range) {
- jio_fprintf(defaultStream::error_stream(),
- "Invalid maximum mark stack size: %s\n",
- option->optionString);
- describe_range_error(errcode);
- return JNI_EINVAL;
- }
- jio_fprintf(defaultStream::error_stream(),
- "Please use -XX:MarkStackSizeMax in place of "
- "-XX:CMSMarkStackSizeMax in the future\n");
- if (FLAG_SET_CMDLINE(size_t, MarkStackSizeMax, max_stack_size) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
- } else if (match_option(option, "-XX:ParallelMarkingThreads=", &tail) ||
- match_option(option, "-XX:ParallelCMSThreads=", &tail)) {
- uintx conc_threads = 0;
- if (!parse_uintx(tail, &conc_threads, 1)) {
- jio_fprintf(defaultStream::error_stream(),
- "Invalid concurrent threads: %s\n", option->optionString);
- return JNI_EINVAL;
- }
- jio_fprintf(defaultStream::error_stream(),
- "Please use -XX:ConcGCThreads in place of "
- "-XX:ParallelMarkingThreads or -XX:ParallelCMSThreads in the future\n");
- if (FLAG_SET_CMDLINE(uint, ConcGCThreads, conc_threads) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
} else if (match_option(option, "-XX:MaxDirectMemorySize=", &tail)) {
julong max_direct_memory_size = 0;
ArgsRange errcode = parse_memory_size(tail, &max_direct_memory_size, 0);
@@ -3114,19 +3325,6 @@
"ManagementServer is not supported in this VM.\n");
return JNI_ERR;
#endif // INCLUDE_MANAGEMENT
- // CreateMinidumpOnCrash is removed, and replaced by CreateCoredumpOnCrash
- } else if (match_option(option, "-XX:+CreateMinidumpOnCrash")) {
- if (FLAG_SET_CMDLINE(bool, CreateCoredumpOnCrash, true) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
- jio_fprintf(defaultStream::output_stream(),
- "CreateMinidumpOnCrash is replaced by CreateCoredumpOnCrash: CreateCoredumpOnCrash is on\n");
- } else if (match_option(option, "-XX:-CreateMinidumpOnCrash")) {
- if (FLAG_SET_CMDLINE(bool, CreateCoredumpOnCrash, false) != Flag::SUCCESS) {
- return JNI_EINVAL;
- }
- jio_fprintf(defaultStream::output_stream(),
- "CreateMinidumpOnCrash is replaced by CreateCoredumpOnCrash: CreateCoredumpOnCrash is off\n");
} else if (match_option(option, "-XX:", &tail)) { // -XX:xxxx
// Skip -XX:Flags= and -XX:VMOptionsFile= since those cases have
// already been handled
@@ -3623,7 +3821,7 @@
void Arguments::set_shared_spaces_flags() {
if (DumpSharedSpaces) {
if (RequireSharedSpaces) {
- warning("cannot dump shared archive while using shared archive");
+ warning("Cannot dump shared archive while using shared archive");
}
UseSharedSpaces = false;
#ifdef _LP64
@@ -3848,6 +4046,7 @@
// Parse entry point called from JNI_CreateJavaVM
jint Arguments::parse(const JavaVMInitArgs* args) {
+ assert(verify_special_jvm_flags(), "deprecated and obsolete flag table inconsistent");
// Initialize ranges and constraints
CommandLineFlagRangeList::init();
@@ -3984,7 +4183,7 @@
if (ScavengeRootsInCode == 0) {
if (!FLAG_IS_DEFAULT(ScavengeRootsInCode)) {
- warning("forcing ScavengeRootsInCode non-zero");
+ warning("Forcing ScavengeRootsInCode non-zero");
}
ScavengeRootsInCode = 1;
}
--- a/hotspot/src/share/vm/runtime/arguments.hpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/runtime/arguments.hpp Wed Jul 05 20:52:05 2017 +0200
@@ -364,6 +364,8 @@
// Aggressive optimization flags.
static jint set_aggressive_opts_flags();
+ static jint set_aggressive_heap_flags();
+
// Argument parsing
static void do_pd_flag_adjustments();
static bool parse_argument(const char* arg, Flag::Flags origin);
@@ -427,11 +429,24 @@
short* methodsNum, short* methodsMax, char*** methods, bool** allClasses
);
- // Returns true if the string s is in the list of flags that have recently
- // been made obsolete. If we detect one of these flags on the command
- // line, instead of failing we print a warning message and ignore the
- // flag. This gives the user a release or so to stop using the flag.
- static bool is_newly_obsolete(const char* s, JDK_Version* buffer);
+ // Returns true if the flag is obsolete (and not yet expired).
+ // In this case the 'version' buffer is filled in with
+ // the version number when the flag became obsolete.
+ static bool is_obsolete_flag(const char* flag_name, JDK_Version* version);
+
+ // Returns 1 if the flag is deprecated (and not yet obsolete or expired).
+ // In this case the 'version' buffer is filled in with the version number when
+ // the flag became deprecated.
+ // Returns -1 if the flag is expired or obsolete.
+ // Returns 0 otherwise.
+ static int is_deprecated_flag(const char* flag_name, JDK_Version* version);
+
+ // Return the real name for the flag passed on the command line (either an alias name or "flag_name").
+ static const char* real_flag_name(const char *flag_name);
+
+ // Return the "real" name for option arg if arg is an alias, and print a warning if arg is deprecated.
+ // Return NULL if the arg has expired.
+ static const char* handle_aliases_and_deprecation(const char* arg, bool warn);
static short CompileOnlyClassesNum;
static short CompileOnlyClassesMax;
@@ -478,7 +493,6 @@
// Check for consistency in the selection of the garbage collector.
static bool check_gc_consistency(); // Check user-selected gc
- static void check_deprecated_gc_flags();
// Check consistency or otherwise of VM argument settings
static bool check_vm_args_consistency();
// Used by os_solaris
--- a/hotspot/src/share/vm/runtime/globals.hpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/runtime/globals.hpp Wed Jul 05 20:52:05 2017 +0200
@@ -1599,7 +1599,7 @@
"(ParallelGC only)") \
\
product(bool, ScavengeBeforeFullGC, true, \
- "Scavenge young generation before each full GC.") \
+ "Scavenge youngest generation before each full GC.") \
\
develop(bool, ScavengeWithObjectsInToSpace, false, \
"Allow scavenges to occur when to-space contains objects") \
@@ -2097,7 +2097,7 @@
"promotion failure") \
\
notproduct(bool, PromotionFailureALot, false, \
- "Use promotion failure handling on every young generation " \
+ "Use promotion failure handling on every youngest generation " \
"collection") \
\
develop(uintx, PromotionFailureALotCount, 1000, \
@@ -2183,11 +2183,6 @@
"size") \
range(1, max_uintx) \
\
- product(uintx, DefaultMaxRAMFraction, 4, \
- "Maximum fraction (1/n) of real memory used for maximum heap " \
- "size; deprecated: to be renamed to MaxRAMFraction") \
- range(1, max_uintx) \
- \
product(uintx, MinRAMFraction, 2, \
"Minimum fraction (1/n) of real memory used for maximum heap " \
"size on systems with small physical memory size") \
--- a/hotspot/src/share/vm/runtime/java.hpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/runtime/java.hpp Wed Jul 05 20:52:05 2017 +0200
@@ -137,6 +137,14 @@
return JDK_Version(major, 0, 0, update_number);
}
+ static JDK_Version undefined() {
+ return JDK_Version(0);
+ }
+
+ bool is_undefined() const {
+ return (_major == 0);
+ }
+
uint8_t major_version() const { return _major; }
uint8_t minor_version() const { return _minor; }
uint8_t micro_version() const { return _micro; }
--- a/hotspot/src/share/vm/runtime/jniHandles.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/runtime/jniHandles.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -124,8 +124,8 @@
}
-size_t JNIHandles::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) {
- return _weak_global_handles->weak_oops_do(is_alive, f);
+void JNIHandles::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) {
+ _weak_global_handles->weak_oops_do(is_alive, f);
}
@@ -380,9 +380,8 @@
}
-size_t JNIHandleBlock::weak_oops_do(BoolObjectClosure* is_alive,
- OopClosure* f) {
- size_t count = 0;
+void JNIHandleBlock::weak_oops_do(BoolObjectClosure* is_alive,
+ OopClosure* f) {
for (JNIHandleBlock* current = this; current != NULL; current = current->_next) {
assert(current->pop_frame_link() == NULL,
"blocks holding weak global JNI handles should not have pop frame link set");
@@ -391,7 +390,6 @@
oop value = *root;
// traverse heap pointers only, not deleted handles or free list pointers
if (value != NULL && Universe::heap()->is_in_reserved(value)) {
- count++;
if (is_alive->do_object_b(value)) {
// The weakly referenced object is alive, update pointer
f->do_oop(root);
@@ -414,9 +412,7 @@
* JVMTI data structures may also contain weak oops. The iteration of them
* is placed here so that we don't need to add it to each of the collectors.
*/
- count += JvmtiExport::weak_oops_do(is_alive, f);
-
- return count;
+ JvmtiExport::weak_oops_do(is_alive, f);
}
--- a/hotspot/src/share/vm/runtime/jniHandles.hpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/runtime/jniHandles.hpp Wed Jul 05 20:52:05 2017 +0200
@@ -85,7 +85,7 @@
// Traversal of regular global handles
static void oops_do(OopClosure* f);
// Traversal of weak global handles. Unreachable oops are cleared.
- static size_t weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f);
+ static void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f);
};
@@ -153,7 +153,7 @@
// Traversal of regular handles
void oops_do(OopClosure* f);
// Traversal of weak handles. Unreachable oops are cleared.
- size_t weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f);
+ void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f);
// Checked JNI support
void set_planned_capacity(size_t planned_capacity) { _planned_capacity = planned_capacity; }
--- a/hotspot/src/share/vm/runtime/vmStructs.cpp Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/src/share/vm/runtime/vmStructs.cpp Wed Jul 05 20:52:05 2017 +0200
@@ -383,7 +383,7 @@
nonstatic_field(Method, _access_flags, AccessFlags) \
nonstatic_field(Method, _vtable_index, int) \
nonstatic_field(Method, _method_size, u2) \
- nonstatic_field(Method, _intrinsic_id, u1) \
+ nonstatic_field(Method, _intrinsic_id, u2) \
nonproduct_nonstatic_field(Method, _compiled_invocation_count, int) \
volatile_nonstatic_field(Method, _code, nmethod*) \
nonstatic_field(Method, _i2i_entry, address) \
--- a/hotspot/test/TEST.groups Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/test/TEST.groups Wed Jul 05 20:52:05 2017 +0200
@@ -190,7 +190,6 @@
gc/g1/TestShrinkToOneRegion.java \
gc/metaspace/G1AddMetaspaceDependency.java \
gc/startup_warnings/TestCMS.java \
- gc/startup_warnings/TestDefaultMaxRAMFraction.java \
gc/startup_warnings/TestDefNewCMS.java \
gc/startup_warnings/TestParallelGC.java \
gc/startup_warnings/TestParallelScavengeSerialOld.java \
--- a/hotspot/test/gc/logging/TestPrintReferences.java Tue Oct 06 13:20:21 2015 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * @test TestPrintReferences
- * @bug 8133818
- * @summary Validate the reference processing logging
- * @key gc
- * @library /testlibrary
- * @modules java.base/sun.misc
- * java.management
- */
-
-import jdk.test.lib.ProcessTools;
-import jdk.test.lib.OutputAnalyzer;
-
-public class TestPrintReferences {
- public static void main(String[] args) throws Exception {
- ProcessBuilder pb_enabled =
- ProcessTools.createJavaProcessBuilder("-XX:+PrintGCDetails", "-XX:+PrintReferenceGC", "-Xmx10M", GCTest.class.getName());
- OutputAnalyzer output = new OutputAnalyzer(pb_enabled.start());
-
- output.shouldMatch(
- "#[0-9]+: \\[SoftReference, [0-9]+ refs, [0-9]+\\.[0-9]+ secs\\]" +
- "#[0-9]+: \\[WeakReference, [0-9]+ refs, [0-9]+\\.[0-9]+ secs\\]" +
- "#[0-9]+: \\[FinalReference, [0-9]+ refs, [0-9]+\\.[0-9]+ secs\\]" +
- "#[0-9]+: \\[PhantomReference, [0-9]+ refs, [0-9]+\\.[0-9]+ secs\\]" +
- "#[0-9]+: \\[Cleaners, [0-9]+ refs, [0-9]+\\.[0-9]+ secs\\]" +
- "#[0-9]+: \\[JNI Weak Reference, [0-9]+ refs, [0-9]+\\.[0-9]+ secs\\]");
-
- output.shouldHaveExitValue(0);
- }
-
- static class GCTest {
- public static void main(String [] args) {
- System.gc();
- }
- }
-}
--- a/hotspot/test/gc/startup_warnings/TestDefaultMaxRAMFraction.java Tue Oct 06 13:20:21 2015 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 2013, 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
-* under the terms of the GNU General Public License version 2 only, as
-* published by the Free Software Foundation.
-*
-* This code is distributed in the hope that it will be useful, but WITHOUT
-* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-* version 2 for more details (a copy is included in the LICENSE file that
-* accompanied this code).
-*
-* You should have received a copy of the GNU General Public License version
-* 2 along with this work; if not, write to the Free Software Foundation,
-* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-*
-* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-* or visit www.oracle.com if you need additional information or have any
-* questions.
-*/
-
-/*
-* @test TestDefaultMaxRAMFraction
-* @key gc
-* @bug 8021967
-* @summary Test that the deprecated TestDefaultMaxRAMFraction flag print a warning message
-* @library /testlibrary
-* @modules java.base/sun.misc
-* java.management
-*/
-
-import jdk.test.lib.OutputAnalyzer;
-import jdk.test.lib.ProcessTools;
-
-public class TestDefaultMaxRAMFraction {
- public static void main(String[] args) throws Exception {
- ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:DefaultMaxRAMFraction=4", "-version");
- OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("warning: DefaultMaxRAMFraction is deprecated and will likely be removed in a future release. Use MaxRAMFraction instead.");
- output.shouldNotContain("error");
- output.shouldHaveExitValue(0);
- }
-
-}
--- a/hotspot/test/gc/startup_warnings/TestNoParNew.java Tue Oct 06 13:20:21 2015 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2014, 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
-* under the terms of the GNU General Public License version 2 only, as
-* published by the Free Software Foundation.
-*
-* This code is distributed in the hope that it will be useful, but WITHOUT
-* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-* version 2 for more details (a copy is included in the LICENSE file that
-* accompanied this code).
-*
-* You should have received a copy of the GNU General Public License version
-* 2 along with this work; if not, write to the Free Software Foundation,
-* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-*
-* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-* or visit www.oracle.com if you need additional information or have any
-* questions.
-*/
-
-/*
-* @test TestNoParNew
-* @key gc
-* @bug 8065972
-* @summary Test that specifying -XX:-UseParNewGC on the command line logs a warning message
-* @library /testlibrary
-* @modules java.base/sun.misc
-* java.management
-*/
-
-import jdk.test.lib.OutputAnalyzer;
-import jdk.test.lib.ProcessTools;
-
-
-public class TestNoParNew {
-
- public static void main(String args[]) throws Exception {
- ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:-UseParNewGC", "-version");
- OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("warning: The UseParNewGC flag is deprecated and will likely be removed in a future release");
- output.shouldNotContain("error");
- output.shouldHaveExitValue(0);
- }
-
-}
--- a/hotspot/test/gc/startup_warnings/TestParNewCMS.java Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/test/gc/startup_warnings/TestParNewCMS.java Wed Jul 05 20:52:05 2017 +0200
@@ -40,7 +40,7 @@
public static void main(String args[]) throws Exception {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseParNewGC", "-XX:+UseConcMarkSweepGC", "-version");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("warning: The UseParNewGC flag is deprecated and will likely be removed in a future release");
+ output.shouldContain("warning: Option UseParNewGC was deprecated in version");
output.shouldNotContain("error");
output.shouldHaveExitValue(0);
}
--- a/hotspot/test/runtime/CommandLine/ObsoleteFlagErrorMessage.java Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/test/runtime/CommandLine/ObsoleteFlagErrorMessage.java Wed Jul 05 20:52:05 2017 +0200
@@ -46,7 +46,7 @@
"-XX:NmethodSweepFraction=10", "-version");
OutputAnalyzer output2 = new OutputAnalyzer(pb2.start());
- output2.shouldContain("ignoring option").shouldContain("support was removed");
+ output2.shouldContain("Ignoring option").shouldContain("support was removed");
output2.shouldContain("NmethodSweepFraction");
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/runtime/CommandLine/VMAliasOptions.java Wed Jul 05 20:52:05 2017 +0200
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import jdk.test.lib.*;
+import jdk.test.lib.cli.*;
+
+/*
+ * @test
+ * @bug 8061611
+ * @summary Test that various alias options correctly set the target options. See aliased_jvm_flags in arguments.cpp.
+ * @library /testlibrary
+ */
+public class VMAliasOptions {
+
+ /**
+ * each entry is {[0]: alias name, [1]: alias target, [2]: value to set
+ * (true/false/n/string)}.
+ */
+ public static final String[][] ALIAS_OPTIONS = {
+ {"DefaultMaxRAMFraction", "MaxRAMFraction", "1032"},
+ {"CMSMarkStackSizeMax", "MarkStackSizeMax", "1032"},
+ {"CMSMarkStackSize", "MarkStackSize", "1032"},
+ {"G1MarkStackSize", "MarkStackSize", "1032"},
+ {"ParallelMarkingThreads", "ConcGCThreads", "2"},
+ {"ParallelCMSThreads", "ConcGCThreads", "2"},
+ {"CreateMinidumpOnCrash", "CreateCoredumpOnCrash", "false" },
+ };
+
+ static void testAliases(String[][] optionInfo) throws Throwable {
+ String aliasNames[] = new String[optionInfo.length];
+ String optionNames[] = new String[optionInfo.length];
+ String expectedValues[] = new String[optionInfo.length];
+ for (int i = 0; i < optionInfo.length; i++) {
+ aliasNames[i] = optionInfo[i][0];
+ optionNames[i] = optionInfo[i][1];
+ expectedValues[i] = optionInfo[i][2];
+ }
+
+ OutputAnalyzer output = CommandLineOptionTest.startVMWithOptions(aliasNames, expectedValues, "-XX:+PrintFlagsFinal");
+ CommandLineOptionTest.verifyOptionValuesFromOutput(output, optionNames, expectedValues);
+ }
+
+ public static void main(String[] args) throws Throwable {
+ testAliases(ALIAS_OPTIONS);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/runtime/CommandLine/VMDeprecatedOptions.java Wed Jul 05 20:52:05 2017 +0200
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import jdk.test.lib.*;
+import jdk.test.lib.cli.*;
+
+/*
+ * @test
+ * @bug 8066821
+ * @summary Test that various options are deprecated. See deprecated_jvm_flags in arguments.cpp.
+ * @library /testlibrary
+ */
+public class VMDeprecatedOptions {
+
+ /**
+ * each entry is {[0]: option name, [1]: value to set
+ * (true/false/n/string)}.
+ */
+ public static final String[][] DEPRECATED_OPTIONS = {
+ // deprecated non-alias flags:
+ {"MaxGCMinorPauseMillis", "1032"},
+ {"UseParNewGC", "false"},
+
+ // deprecated alias flags (see also aliased_jvm_flags):
+ {"DefaultMaxRAMFraction", "4"},
+ {"CMSMarkStackSizeMax", "1032"},
+ {"CMSMarkStackSize", "1032"},
+ {"G1MarkStackSize", "1032"},
+ {"ParallelMarkingThreads", "2"},
+ {"ParallelCMSThreads", "2"},
+ {"CreateMinidumpOnCrash", "false"}
+ };
+
+ static String getDeprecationString(String optionName) {
+ return "Option " + optionName
+ + " was deprecated in version [\\S]+ and will likely be removed in a future release";
+ }
+
+ static void testDeprecated(String[][] optionInfo) throws Throwable {
+ String optionNames[] = new String[optionInfo.length];
+ String expectedValues[] = new String[optionInfo.length];
+ for (int i = 0; i < optionInfo.length; i++) {
+ optionNames[i] = optionInfo[i][0];
+ expectedValues[i] = optionInfo[i][1];
+ }
+
+ OutputAnalyzer output = CommandLineOptionTest.startVMWithOptions(optionNames, expectedValues);
+
+ // check for option deprecation messages:
+ output.shouldHaveExitValue(0);
+ for (String[] deprecated : optionInfo) {
+ String match = getDeprecationString(deprecated[0]);
+ output.shouldMatch(match);
+ }
+ }
+
+ public static void main(String[] args) throws Throwable {
+ testDeprecated(DEPRECATED_OPTIONS); // Make sure that each deprecated option is mentioned in the output.
+ }
+}
--- a/hotspot/test/runtime/NMT/AutoshutdownNMT.java Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/test/runtime/NMT/AutoshutdownNMT.java Wed Jul 05 20:52:05 2017 +0200
@@ -41,6 +41,6 @@
"-XX:-AutoShutdownNMT",
"-version");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("ignoring option AutoShutdownNMT");
+ output.shouldContain("Ignoring option AutoShutdownNMT");
}
}
--- a/hotspot/test/testlibrary/jdk/test/lib/cli/CommandLineOptionTest.java Tue Oct 06 13:20:21 2015 -0700
+++ b/hotspot/test/testlibrary/jdk/test/lib/cli/CommandLineOptionTest.java Wed Jul 05 20:52:05 2017 +0200
@@ -261,6 +261,73 @@
}
/**
+ * Start VM with given options and values.
+ * Generates command line option flags from
+ * {@code optionNames} and {@code optionValues}.
+ *
+ * @param optionNames names of options to pass in
+ * @param optionValues values of option
+ * @param additionalVMOpts additional options that should be
+ * passed to JVM.
+ * @return output from vm process
+ */
+ public static OutputAnalyzer startVMWithOptions(String[] optionNames,
+ String[] optionValues,
+ String... additionalVMOpts) throws Throwable {
+ List<String> vmOpts = new ArrayList<>();
+ if (optionNames == null || optionValues == null || optionNames.length != optionValues.length) {
+ throw new IllegalArgumentException("optionNames and/or optionValues");
+ }
+
+ for (int i = 0; i < optionNames.length; i++) {
+ vmOpts.add(prepareFlag(optionNames[i], optionValues[i]));
+ }
+ Collections.addAll(vmOpts, additionalVMOpts);
+ Collections.addAll(vmOpts, "-version");
+
+ ProcessBuilder processBuilder = ProcessTools.createJavaProcessBuilder(
+ vmOpts.toArray(new String[vmOpts.size()]));
+
+ return new OutputAnalyzer(processBuilder.start());
+ }
+
+ /**
+ * Verifies from the output that values of specified JVM options were the same as
+ * expected values.
+ *
+ * @param outputAnalyzer search output for expect options and values.
+ * @param optionNames names of tested options.
+ * @param expectedValues expected values of tested options.
+ * @throws Throwable if verification fails or some other issues occur.
+ */
+ public static void verifyOptionValuesFromOutput(OutputAnalyzer outputAnalyzer,
+ String[] optionNames,
+ String[] expectedValues) throws Throwable {
+ outputAnalyzer.shouldHaveExitValue(0);
+ for (int i = 0; i < optionNames.length; i++) {
+ outputAnalyzer.shouldMatch(String.format(
+ CommandLineOptionTest.PRINT_FLAGS_FINAL_FORMAT,
+ optionNames[i], expectedValues[i]));
+ }
+ }
+
+ /**
+ * Verifies that value of specified JVM options are the same as
+ * expected values.
+ * Generates command line option flags from
+ * {@code optionNames} and {@code expectedValues}.
+ *
+ * @param optionNames names of tested options.
+ * @param expectedValues expected values of tested options.
+ * @throws Throwable if verification fails or some other issues occur.
+ */
+ public static void verifyOptionValues(String[] optionNames,
+ String[] expectedValues) throws Throwable {
+ OutputAnalyzer outputAnalyzer = startVMWithOptions(optionNames, expectedValues, "-XX:+PrintFlagsFinal");
+ verifyOptionValuesFromOutput(outputAnalyzer, optionNames, expectedValues);
+ }
+
+ /**
* Verifies that value of specified JVM when type of newly started VM
* is the same as the type of current.
* This method filter out option with {@code optionName}
@@ -312,6 +379,24 @@
}
/**
+ * Prepares generic command line flag with name {@code name} by setting
+ * it's value to {@code value}.
+ *
+ * @param name the name of option to be prepared
+ * @param value the value of option ("+" or "-" can be used instead of "true" or "false")
+ * @return prepared command line flag
+ */
+ public static String prepareFlag(String name, String value) {
+ if (value.equals("+") || value.equalsIgnoreCase("true")) {
+ return "-XX:+" + name;
+ } else if (value.equals("-") || value.equalsIgnoreCase("false")) {
+ return "-XX:-" + name;
+ } else {
+ return "-XX:" + name + "=" + value;
+ }
+ }
+
+ /**
* Returns message that should occur in VM output if option
* {@code optionName} if unrecognized.
*
--- a/make/Main.gmk Tue Oct 06 13:20:21 2015 -0700
+++ b/make/Main.gmk Wed Jul 05 20:52:05 2017 +0200
@@ -72,9 +72,6 @@
interim-langtools:
+($(CD) $(LANGTOOLS_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterim.gmk)
-interim-corba:
- +($(CD) $(CORBA_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterim.gmk)
-
interim-rmic:
+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimRmic.gmk)
@@ -84,7 +81,7 @@
buildtools-jdk:
+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Tools.gmk java-tools)
-ALL_TARGETS += buildtools-langtools interim-langtools interim-corba \
+ALL_TARGETS += buildtools-langtools interim-langtools \
interim-rmic interim-cldrconverter buildtools-jdk
################################################################################
@@ -357,13 +354,11 @@
$(JDK_GENSRC_TARGETS): interim-langtools buildtools-jdk
- interim-corba: $(CORBA_GENSRC_TARGETS)
-
$(GENDATA_TARGETS): interim-langtools buildtools-jdk
interim-rmic: interim-langtools
- $(RMIC_TARGETS): interim-langtools interim-corba interim-rmic
+ $(RMIC_TARGETS): interim-langtools interim-rmic
$(JAVA_TARGETS): interim-langtools
@@ -463,7 +458,7 @@
################################################################################
# Virtual targets without recipes
-buildtools: buildtools-langtools interim-langtools interim-corba interim-rmic \
+buildtools: buildtools-langtools interim-langtools interim-rmic \
buildtools-jdk
gensrc: $(GENSRC_TARGETS)
--- a/make/StripBinaries.gmk Tue Oct 06 13:20:21 2015 -0700
+++ b/make/StripBinaries.gmk Wed Jul 05 20:52:05 2017 +0200
@@ -38,13 +38,13 @@
MODULES_CMDS_STRIPPED := $(SUPPORT_OUTPUTDIR)/modules_cmds-stripped
MODULES_LIBS_STRIPPED := $(SUPPORT_OUTPUTDIR)/modules_libs-stripped
-ifneq ($(POST_STRIP_CMD), )
+ifneq ($(STRIP), )
define StripRecipe
$(ECHO) Stripping $(LOG_INFO) $(patsubst $(OUTPUT_ROOT)/%,%,$<)
$(MKDIR) -p $(@D)
$(CP) $< $@.tmp
$(CHMOD) u+w $@.tmp
- $(POST_STRIP_CMD) $@.tmp
+ $(STRIP) $(STRIPFLAGS) $@.tmp
$(CHMOD) go-w $@.tmp
$(MV) $@.tmp $@
endef
--- a/make/common/JavaCompilation.gmk Tue Oct 06 13:20:21 2015 -0700
+++ b/make/common/JavaCompilation.gmk Wed Jul 05 20:52:05 2017 +0200
@@ -122,9 +122,9 @@
$1_GREP_INCLUDES:=| ( $(GREP) $$(patsubst %,$(SPACE)-e$(SPACE)$(DQUOTE)%$(DQUOTE),$$($1_GREP_INCLUDE_PATTERNS)) \
|| test "$$$$?" = "1" )
else
- $1_GREP_INCLUDE_OUTPUT:=$(RM) $$($1_BIN)/_the.$$($1_JARNAME)_include $$(NEWLINE) \
- $$(call ListPathsSafely,$1_GREP_INCLUDE_PATTERNS,\n, \
- >> $$($1_BIN)/_the.$$($1_JARNAME)_include)
+ $1_GREP_INCLUDE_OUTPUT = \
+ $$(eval $$(call ListPathsSafely,$1_GREP_INCLUDE_PATTERNS, \
+ $$($1_BIN)/_the.$$($1_JARNAME)_include))
$1_GREP_INCLUDES:=| ( $(GREP) -f $$($1_BIN)/_the.$$($1_JARNAME)_include \
|| test "$$$$?" = "1" )
endif
@@ -138,9 +138,9 @@
$1_GREP_EXCLUDES:=| ( $(GREP) -v $$(patsubst %,$(SPACE)-e$(SPACE)$(DQUOTE)%$(DQUOTE),$$($1_GREP_EXCLUDE_PATTERNS)) \
|| test "$$$$?" = "1" )
else
- $1_GREP_EXCLUDE_OUTPUT=$(RM) $$($1_BIN)/_the.$$($1_JARNAME)_exclude $$(NEWLINE) \
- $$(call ListPathsSafely,$1_GREP_EXCLUDE_PATTERNS,\n, \
- >> $$($1_BIN)/_the.$$($1_JARNAME)_exclude)
+ $1_GREP_EXCLUDE_OUTPUT = \
+ $$(eval $$(call ListPathsSafely,$1_GREP_EXCLUDE_PATTERNS, \
+ $$($1_BIN)/_the.$$($1_JARNAME)_exclude))
$1_GREP_EXCLUDES:=| ( $(GREP) -v -f $$($1_BIN)/_the.$$($1_JARNAME)_exclude \
|| test "$$$$?" = "1" )
endif
@@ -190,13 +190,12 @@
# The EXTRA_FILES_RESOLVED varible must be set in the macro so that it's evaluated
# in the recipe when the files are guaranteed to exist.
$1_CAPTURE_EXTRA_FILES=\
- $(RM) $$($1_BIN)/_the.$$($1_JARNAME)_contents.extra $$(NEWLINE) \
- $$(eval $1_EXTRA_FILES_RESOLVED:=$$(call DoubleDollar, $$(call DoubleDollar, \
+ $$(eval $1_EXTRA_FILES_RESOLVED:=$$(call DoubleDollar, \
$$(wildcard $$(foreach src, $$($1_SRCS), \
- $$(addprefix $$(src)/, $$($1_EXTRA_FILES))) $$($1_EXTRA_FILES))))) \
+ $$(addprefix $$(src)/, $$($1_EXTRA_FILES))) $$($1_EXTRA_FILES)))) \
$$(if $$($1_EXTRA_FILES_RESOLVED), \
- $$(call ListPathsSafely,$1_EXTRA_FILES_RESOLVED,\n, \
- >> $$($1_BIN)/_the.$$($1_JARNAME)_contents.extra) $$(NEWLINE) \
+ $$(eval $$(call ListPathsSafely,$1_EXTRA_FILES_RESOLVED, \
+ $$($1_BIN)/_the.$$($1_JARNAME)_contents.extra)) \
$(SED) $$(foreach src,$$($1_SRCS), -e 's|$$(src)/|-C $$(src) |g') \
$$($1_BIN)/_the.$$($1_JARNAME)_contents.extra \
>> $$($1_BIN)/_the.$$($1_JARNAME)_contents $$(NEWLINE))
@@ -577,7 +576,7 @@
$$($1_BIN)/_the.$1_batch: $$($1_SRCS) $$($1_DEPENDS) $$($1_VARDEPS_FILE)
$(MKDIR) -p $$(@D) $$(dir $$($1_SJAVAC_PORTFILE))
- $$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.$1_batch.tmp)
+ $$(eval $$(call ListPathsSafely,$1_SRCS, $$($1_BIN)/_the.$1_batch.tmp))
$(ECHO) Compiling $1
$(call LogFailures, $$($1_BIN)/_the.$$($1_SAFE_NAME)_batch.log, $$($1_SAFE_NAME), \
$$($1_JVM) $$($1_SJAVAC) \
@@ -636,8 +635,7 @@
# When not using sjavac, pass along all sources to javac using an @file.
$$($1_BIN)/_the.$1_batch: $$($1_SRCS) $$($1_DEPENDS) $$($1_VARDEPS_FILE)
$(MKDIR) -p $$(@D)
- $(RM) $$($1_BIN)/_the.$1_batch $$($1_BIN)/_the.$1_batch.tmp
- $$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.$1_batch.tmp)
+ $$(eval $$(call ListPathsSafely,$1_SRCS, $$($1_BIN)/_the.$1_batch.tmp))
$(ECHO) Compiling `$(WC) $$($1_BIN)/_the.$1_batch.tmp | $(TR) -s ' ' | $(CUT) -f 2 -d ' '` files for $1
$(call LogFailures, $$($1_BIN)/_the.$$($1_SAFE_NAME)_batch.log, $$($1_SAFE_NAME), \
$$($1_JVM) $$($1_JAVAC) $$($1_FLAGS) \
--- a/make/common/MakeBase.gmk Tue Oct 06 13:20:21 2015 -0700
+++ b/make/common/MakeBase.gmk Wed Jul 05 20:52:05 2017 +0200
@@ -64,6 +64,11 @@
endef
+# In GNU Make 4.0 and higher, there is a file function for writing to files.
+ifeq (4.0, $(firstword $(sort 4.0 $(MAKE_VERSION))))
+ HAS_FILE_FUNCTION := true
+endif
+
##############################
# Functions
##############################
@@ -122,266 +127,111 @@
DoubleDollar = $(subst $$,$$$$,$(strip $1))
################################################################################
+# ListPathsSafely can be used to print command parameters to a file. This is
+# typically done if the command line lenght risk being too long for the
+# OS/shell. In later make versions, the file function can be used for this
+# purpose. For earlier versions, a more complex implementation is provided.
+#
+# The function ListPathsSafely can be called either directly or, more commonly
+# from a recipe line. If called from a recipe, it will be executed in the
+# evaluation phase of that recipe, which means that it will write to the file
+# before any other line in the recipe has been run.
+ifeq ($(HAS_FILE_FUNCTION), true)
+ # Param 1 - Name of variable containing paths/arguments to output
+ # Param 2 - File to print to
+ # Param 3 - Set to true to append to file instead of overwriting
+ define ListPathsSafely
+ $$(call MakeDir, $$(dir $$(strip $2)))
+ $$(file $$(if $$(filter true, $$(strip $3)),>>,>) \
+ $$(strip $2),$$(subst $$(SPACE),$$(NEWLINE),$$(strip $$($$(strip $1)))))
+ endef
-# If the variable that you want to send to stdout for piping into a file or otherwise,
-# is potentially long, for example the a list of file paths, eg a list of all package directories.
-# Then you need to use ListPathsSafely, which optimistically splits the output into several shell
-# calls as well as use compression on recurrent file paths segments, to get around the potential
-# command line length problem that exists in cygwin and other shells.
-compress_pre:=$(strip $(shell $(CAT) $(SRC_ROOT)/make/common/support/ListPathsSafely-pre-compress.incl))
-compress_post:=$(strip $(shell $(CAT) $(SRC_ROOT)/make/common/support/ListPathsSafely-post-compress.incl))
-compress_paths=$(compress_pre)\
+else # HAS_FILE_FUNCTION
+
+ $(eval compress_paths = \
+ $(strip $(shell $(CAT) $(SRC_ROOT)/make/common/support/ListPathsSafely-pre-compress.incl)))
+ compress_paths += \
$(subst $(SRC_ROOT),X97,\
$(subst $(OUTPUT_ROOT),X98,\
$(subst X,X00,\
-$(subst $(SPACE),\n,$(strip $1)))))\
-$(compress_post)
-
-decompress_paths=$(SED) -f $(SRC_ROOT)/make/common/support/ListPathsSafely-uncompress.sed -e 's|X99|\\n|g' \
- -e 's|X98|$(OUTPUT_ROOT)|g' -e 's|X97|$(SRC_ROOT)|g' \
- -e 's|X00|X|g' | tr '\n' '$2'
-
-define ListPathsSafely_If
- $(if $(word $3,$($1)),$(eval $1_LPS$3:=$(call compress_paths,$(wordlist $3,$4,$($1)))))
-endef
-
-define ListPathsSafely_Printf
- $(if $(strip $($1_LPS$4)),$(if $(findstring $(LOG_LEVEL),trace),,@)printf \
- -- "$(strip $(call EscapeDollar, $($1_LPS$4)))\n" | $(decompress_paths) $3)
-endef
-
-# Receipt example:
-# rm -f thepaths
-# $(call ListPathsSafely,THEPATHS,\n, >> thepaths)
-# The \n argument means translate spaces into \n
-# if instead , , (a space) is supplied, then spaces remain spaces.
-define ListPathsSafely
- $(if $(word 16001,$($1)),$(error Cannot list safely more than 16000 paths. $1 has $(words $($1)) paths!))
- $(ECHO) $(LOG_DEBUG) Writing $(words $($1)) paths to '$3'
- $(call ListPathsSafely_If,$1,$2,1,250)
- $(call ListPathsSafely_If,$1,$2,251,500)
- $(call ListPathsSafely_If,$1,$2,501,750)
- $(call ListPathsSafely_If,$1,$2,751,1000)
-
- $(call ListPathsSafely_If,$1,$2,1001,1250)
- $(call ListPathsSafely_If,$1,$2,1251,1500)
- $(call ListPathsSafely_If,$1,$2,1501,1750)
- $(call ListPathsSafely_If,$1,$2,1751,2000)
-
- $(call ListPathsSafely_If,$1,$2,2001,2250)
- $(call ListPathsSafely_If,$1,$2,2251,2500)
- $(call ListPathsSafely_If,$1,$2,2501,2750)
- $(call ListPathsSafely_If,$1,$2,2751,3000)
-
- $(call ListPathsSafely_If,$1,$2,3001,3250)
- $(call ListPathsSafely_If,$1,$2,3251,3500)
- $(call ListPathsSafely_If,$1,$2,3501,3750)
- $(call ListPathsSafely_If,$1,$2,3751,4000)
+ $(subst $(SPACE),\n,$(strip $1)))))
+ $(eval compress_paths += \
+ $(strip $(shell $(CAT) $(SRC_ROOT)/make/common/support/ListPathsSafely-post-compress.incl)))
- $(call ListPathsSafely_If,$1,$2,4001,4250)
- $(call ListPathsSafely_If,$1,$2,4251,4500)
- $(call ListPathsSafely_If,$1,$2,4501,4750)
- $(call ListPathsSafely_If,$1,$2,4751,5000)
-
- $(call ListPathsSafely_If,$1,$2,5001,5250)
- $(call ListPathsSafely_If,$1,$2,5251,5500)
- $(call ListPathsSafely_If,$1,$2,5501,5750)
- $(call ListPathsSafely_If,$1,$2,5751,6000)
-
- $(call ListPathsSafely_If,$1,$2,6001,6250)
- $(call ListPathsSafely_If,$1,$2,6251,6500)
- $(call ListPathsSafely_If,$1,$2,6501,6750)
- $(call ListPathsSafely_If,$1,$2,6751,7000)
-
- $(call ListPathsSafely_If,$1,$2,7001,7250)
- $(call ListPathsSafely_If,$1,$2,7251,7500)
- $(call ListPathsSafely_If,$1,$2,7501,7750)
- $(call ListPathsSafely_If,$1,$2,7751,8000)
-
- $(call ListPathsSafely_If,$1,$2,8001,8250)
- $(call ListPathsSafely_If,$1,$2,8251,8500)
- $(call ListPathsSafely_If,$1,$2,8501,8750)
- $(call ListPathsSafely_If,$1,$2,8751,9000)
-
- $(call ListPathsSafely_If,$1,$2,9001,9250)
- $(call ListPathsSafely_If,$1,$2,9251,9500)
- $(call ListPathsSafely_If,$1,$2,9501,9750)
- $(call ListPathsSafely_If,$1,$2,9751,10000)
-
- $(call ListPathsSafely_If,$1,$2,10001,10250)
- $(call ListPathsSafely_If,$1,$2,10251,10500)
- $(call ListPathsSafely_If,$1,$2,10501,10750)
- $(call ListPathsSafely_If,$1,$2,10751,11000)
-
- $(call ListPathsSafely_If,$1,$2,11001,11250)
- $(call ListPathsSafely_If,$1,$2,11251,11500)
- $(call ListPathsSafely_If,$1,$2,11501,11750)
- $(call ListPathsSafely_If,$1,$2,11751,12000)
-
- $(call ListPathsSafely_If,$1,$2,12001,12250)
- $(call ListPathsSafely_If,$1,$2,12251,12500)
- $(call ListPathsSafely_If,$1,$2,12501,12750)
- $(call ListPathsSafely_If,$1,$2,12751,13000)
-
- $(call ListPathsSafely_If,$1,$2,13001,13250)
- $(call ListPathsSafely_If,$1,$2,13251,13500)
- $(call ListPathsSafely_If,$1,$2,13501,13750)
- $(call ListPathsSafely_If,$1,$2,13751,14000)
+ decompress_paths=$(SED) -f $(SRC_ROOT)/make/common/support/ListPathsSafely-uncompress.sed \
+ -e 's|X99|\\n|g' \
+ -e 's|X98|$(OUTPUT_ROOT)|g' -e 's|X97|$(SRC_ROOT)|g' \
+ -e 's|X00|X|g'
- $(call ListPathsSafely_If,$1,$2,14001,14250)
- $(call ListPathsSafely_If,$1,$2,14251,14500)
- $(call ListPathsSafely_If,$1,$2,14501,14750)
- $(call ListPathsSafely_If,$1,$2,14751,15000)
-
- $(call ListPathsSafely_If,$1,$2,15001,15250)
- $(call ListPathsSafely_If,$1,$2,15251,15500)
- $(call ListPathsSafely_If,$1,$2,15501,15750)
- $(call ListPathsSafely_If,$1,$2,15751,16000)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,1)
- $(call ListPathsSafely_Printf,$1,$2,$3,251)
- $(call ListPathsSafely_Printf,$1,$2,$3,501)
- $(call ListPathsSafely_Printf,$1,$2,$3,751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,1001)
- $(call ListPathsSafely_Printf,$1,$2,$3,1251)
- $(call ListPathsSafely_Printf,$1,$2,$3,1501)
- $(call ListPathsSafely_Printf,$1,$2,$3,1751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,2001)
- $(call ListPathsSafely_Printf,$1,$2,$3,2251)
- $(call ListPathsSafely_Printf,$1,$2,$3,2501)
- $(call ListPathsSafely_Printf,$1,$2,$3,2751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,3001)
- $(call ListPathsSafely_Printf,$1,$2,$3,3251)
- $(call ListPathsSafely_Printf,$1,$2,$3,3501)
- $(call ListPathsSafely_Printf,$1,$2,$3,3751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,4001)
- $(call ListPathsSafely_Printf,$1,$2,$3,4251)
- $(call ListPathsSafely_Printf,$1,$2,$3,4501)
- $(call ListPathsSafely_Printf,$1,$2,$3,4751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,5001)
- $(call ListPathsSafely_Printf,$1,$2,$3,5251)
- $(call ListPathsSafely_Printf,$1,$2,$3,5501)
- $(call ListPathsSafely_Printf,$1,$2,$3,5751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,6001)
- $(call ListPathsSafely_Printf,$1,$2,$3,6251)
- $(call ListPathsSafely_Printf,$1,$2,$3,6501)
- $(call ListPathsSafely_Printf,$1,$2,$3,6751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,7001)
- $(call ListPathsSafely_Printf,$1,$2,$3,7251)
- $(call ListPathsSafely_Printf,$1,$2,$3,7501)
- $(call ListPathsSafely_Printf,$1,$2,$3,7751)
+ ListPathsSafely_IfPrintf = \
+ $(if $(word $3,$($(strip $1))), \
+ $(shell $(PRINTF) -- "$(strip $(call EscapeDollar, \
+ $(call compress_paths, $(wordlist $3,$4,$($(strip $1))))))\n" \
+ | $(decompress_paths) >> $2))
- $(call ListPathsSafely_Printf,$1,$2,$3,8001)
- $(call ListPathsSafely_Printf,$1,$2,$3,8251)
- $(call ListPathsSafely_Printf,$1,$2,$3,8501)
- $(call ListPathsSafely_Printf,$1,$2,$3,8751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,9001)
- $(call ListPathsSafely_Printf,$1,$2,$3,9251)
- $(call ListPathsSafely_Printf,$1,$2,$3,9501)
- $(call ListPathsSafely_Printf,$1,$2,$3,9751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,10001)
- $(call ListPathsSafely_Printf,$1,$2,$3,10251)
- $(call ListPathsSafely_Printf,$1,$2,$3,10501)
- $(call ListPathsSafely_Printf,$1,$2,$3,10751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,11001)
- $(call ListPathsSafely_Printf,$1,$2,$3,11251)
- $(call ListPathsSafely_Printf,$1,$2,$3,11501)
- $(call ListPathsSafely_Printf,$1,$2,$3,11751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,12001)
- $(call ListPathsSafely_Printf,$1,$2,$3,12251)
- $(call ListPathsSafely_Printf,$1,$2,$3,12501)
- $(call ListPathsSafely_Printf,$1,$2,$3,12751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,13001)
- $(call ListPathsSafely_Printf,$1,$2,$3,13251)
- $(call ListPathsSafely_Printf,$1,$2,$3,13501)
- $(call ListPathsSafely_Printf,$1,$2,$3,13751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,14001)
- $(call ListPathsSafely_Printf,$1,$2,$3,14251)
- $(call ListPathsSafely_Printf,$1,$2,$3,14501)
- $(call ListPathsSafely_Printf,$1,$2,$3,14751)
-
- $(call ListPathsSafely_Printf,$1,$2,$3,15001)
- $(call ListPathsSafely_Printf,$1,$2,$3,15251)
- $(call ListPathsSafely_Printf,$1,$2,$3,15501)
- $(call ListPathsSafely_Printf,$1,$2,$3,15751)
-endef
-
-define ListPathsSafelyNow_IfPrintf
- ifneq (,$$(word $4,$$($1)))
- $$(eval $1_LPS$4:=$$(call compress_paths,$$(wordlist $4,$5,$$($1))))
- $$(shell printf -- "$$(strip $$($1_LPS$4))\n" | $(decompress_paths) $3)
- endif
-endef
-
-# And an non-receipt version:
-define ListPathsSafelyNow
+ # Param 1 - Name of variable containing paths/arguments to output
+ # Param 2 - File to print to
+ # Param 3 - Set to true to append to file instead of overwriting
+define ListPathsSafely
ifneq (,$$(word 10001,$$($1)))
$$(error Cannot list safely more than 10000 paths. $1 has $$(words $$($1)) paths!)
endif
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1,250)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,251,500)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,501,750)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,751,1000)
+ $$(call MakeDir, $$(dir $2))
+ ifneq ($$(strip $3), true)
+ $$(shell $(RM) $$(strip $2))
+ endif
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1001,1250)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1251,1500)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1501,1750)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1751,2000)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,1,250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,251,500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,501,750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,751,1000)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,2001,2250)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,2251,2500)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,2501,2750)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,2751,3000)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,1001,1250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,1251,1500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,1501,1750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,1751,2000)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,3001,3250)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,3251,3500)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,3501,3750)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,3751,4000)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,2001,2250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,2251,2500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,2501,2750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,2751,3000)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,4001,4250)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,4251,4500)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,4501,4750)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,4751,5000)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,3001,3250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,3251,3500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,3501,3750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,3751,4000)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,5001,5250)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,5251,5500)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,5501,5750)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,5751,6000)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,4001,4250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,4251,4500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,4501,4750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,4751,5000)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,6001,6250)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,6251,6500)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,6501,6750)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,6751,7000)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,5001,5250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,5251,5500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,5501,5750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,5751,6000)
+
+ $$(call ListPathsSafely_IfPrintf,$1,$2,6001,6250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,6251,6500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,6501,6750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,6751,7000)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,7001,7250)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,7251,7500)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,7501,7750)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,7751,8000)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,7001,7250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,7251,7500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,7501,7750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,7751,8000)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,8001,8250)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,8251,8500)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,8501,8750)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,8751,9000)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,8001,8250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,8251,8500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,8501,8750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,8751,9000)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,9001,9250)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,9251,9500)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,9501,9750)
- $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,9751,10000)
-
+ $$(call ListPathsSafely_IfPrintf,$1,$2,9001,9250)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,9251,9500)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,9501,9750)
+ $$(call ListPathsSafely_IfPrintf,$1,$2,9751,10000)
endef
+endif # HAS_FILE_FUNCTION
# The source tips can come from the Mercurial repository, or in the files
# $(HGTIP_FILENAME) which contains the tip but is also positioned in the same
@@ -674,6 +524,10 @@
$3 += $2
endef
+# Returns the value of the first argument
+identity = \
+ $(strip $1)
+
# Setup make rules for copying files, with an option to do more complex
# processing instead of copying.
#
@@ -688,6 +542,8 @@
# FLATTEN : Set to flatten the directory structure in the DEST dir.
# MACRO : Optionally override the default macro used for making the copy.
# Default is 'install-file'
+# NAME_MACRO : Optionally supply a macro that rewrites the target file name
+# based on the source file name
SetupCopyFiles = $(NamedParamsMacroTemplate)
define SetupCopyFilesBody
@@ -700,12 +556,17 @@
$1_SRC := $$(dir $$(firstword $$($1_FILES)))
endif
+ ifeq ($$($1_NAME_MACRO), )
+ $1_NAME_MACRO := identity
+ endif
+
# Remove any trailing slash from SRC
$1_SRC := $$(patsubst %/,%,$$($1_SRC))
$$(foreach f, $$(patsubst $$($1_SRC)/%,%,$$($1_FILES)), \
$$(eval $$(call AddFileToCopy, $$($1_SRC)/$$f, \
- $$($1_DEST)/$$(if $$($1_FLATTEN),$$(notdir $$f),$$f), $1, $$($1_MACRO))))
+ $$($1_DEST)/$$(call $$(strip $$($1_NAME_MACRO)),$$(if $$($1_FLATTEN),$$(notdir $$f),$$f)), \
+ $1, $$($1_MACRO))))
endef
@@ -727,9 +588,14 @@
# Param 1 - Text to write
# Param 2 - File to write to
+ifeq ($(HAS_FILE_FUNCTION), true)
+ WriteFile = \
+ $(file >$2,$(strip $1))
+else
# Use printf to get consistent behavior on all platforms.
WriteFile = \
$(shell $(PRINTF) "%s" $(call ShellQuote, $1) > $2)
+endif
################################################################################
# DependOnVariable
@@ -767,15 +633,16 @@
# Param 1 - Name of variable
# Param 2 - (optional) name of file to store value in
DependOnVariableHelper = \
- $(strip $(if $(and $(wildcard $(call DependOnVariableFileName, $1, $2)),\
- $(call equals, $(strip $($1)), \
- $(call ReadFile, $(call DependOnVariableFileName, $1, $2)))),,\
- $(call MakeDir, $(dir $(call DependOnVariableFileName, $1, $2))) \
- $(if $(findstring $(LOG_LEVEL), trace), \
- $(info Variable $1: >$(strip $($1))<) \
- $(info File: >$(call ReadFile, $(call DependOnVariableFileName, $1, $2))<)) \
- $(call WriteFile, $($1), $(call DependOnVariableFileName, $1, $2))) \
- $(call DependOnVariableFileName, $1, $2))
+ $(strip \
+ $(eval -include $(call DependOnVariableFileName, $1, $2)) \
+ $(if $(call equals, $(strip $($1)), $(strip $($1_old))),,\
+ $(call MakeDir, $(dir $(call DependOnVariableFileName, $1, $2))) \
+ $(if $(findstring $(LOG_LEVEL), trace), \
+ $(info NewVariable $1: >$(strip $($1))<) \
+ $(info OldVariable $1: >$(strip $($1_old))<)) \
+ $(call WriteFile, $1_old:=$($1), $(call DependOnVariableFileName, $1, $2))) \
+ $(call DependOnVariableFileName, $1, $2) \
+ )
# Main macro
# Param 1 - Name of variable
--- a/make/common/NativeCompilation.gmk Tue Oct 06 13:20:21 2015 -0700
+++ b/make/common/NativeCompilation.gmk Wed Jul 05 20:52:05 2017 +0200
@@ -49,6 +49,7 @@
# AS - Assembler
# MT - Windows MT tool
# RC - Windows RC tool
+# STRIP - The tool to use for stripping debug symbols
# SYSROOT_CFLAGS - Compiler flags for using the specific sysroot
# SYSROOT_LDFLAGS - Linker flags for using the specific sysroot
DefineNativeToolchain = $(NamedParamsMacroTemplate)
@@ -64,6 +65,7 @@
$$(call SetIfEmpty, $1_AS, $$($$($1_EXTENDS)_AS))
$$(call SetIfEmpty, $1_MT, $$($$($1_EXTENDS)_MT))
$$(call SetIfEmpty, $1_RC, $$($$($1_EXTENDS)_RC))
+ $$(call SetIfEmpty, $1_STRIP, $$($$($1_EXTENDS)_STRIP))
$$(call SetIfEmpty, $1_SYSROOT_CFLAGS, $$($$($1_EXTENDS)_SYSROOT_CFLAGS))
$$(call SetIfEmpty, $1_SYSROOT_LDFLAGS, $$($$($1_EXTENDS)_SYSROOT_LDFLAGS))
endif
@@ -78,6 +80,7 @@
AS := $(AS), \
MT := $(MT), \
RC := $(RC), \
+ STRIP := $(STRIP), \
SYSROOT_CFLAGS := $(SYSROOT_CFLAGS), \
SYSROOT_LDFLAGS := $(SYSROOT_LDFLAGS), \
))
@@ -211,23 +214,25 @@
$(call LogFailures, $$($1_$2_OBJ).log, $$($1_SAFE_NAME)_$$(notdir $2), \
$$($1_$2_COMP) $$($1_$2_FLAGS) $$($1_$2_DEP_FLAG) $$($1_$2_DEP) $(CC_OUT_OPTION)$$($1_$2_OBJ) $2)
endif
+ # Create a dependency target file from the dependency file.
+ # Solution suggested by http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
+ ifneq ($$($1_$2_DEP),)
+ $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_$2_DEP) > $$($1_$2_DEP_TARGETS)
+ endif
else
# The Visual Studio compiler lacks a feature for generating make dependencies, but by
# setting -showIncludes, all included files are printed. These are filtered out and
# parsed into make dependences.
+ # Keep as much as possible on one execution line for best performance on Windows
($(call LogFailures, $$($1_$2_OBJ).log, $$($1_SAFE_NAME)_$$(notdir $2), \
$$($1_$2_COMP) $$($1_$2_FLAGS) -showIncludes $$($1_$2_DEBUG_OUT_FLAGS) \
$(CC_OUT_OPTION)$$($1_$2_OBJ) $2) ; echo $$$$? > $$($1_$2_DEP).exitvalue) \
| $(TEE) $$($1_$2_DEP).raw | $(GREP) -v -e "^Note: including file:" \
-e "^$(notdir $2)$$$$" || test "$$$$?" = "1" ; \
- exit `cat $$($1_$2_DEP).exitvalue`
- $(RM) $$($1_$2_DEP).exitvalue
- ($(ECHO) $$@: \\ \
- && $(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/
- ifneq ($$($1_$2_DEP),)
+ exit `cat $$($1_$2_DEP).exitvalue` ; \
+ $(RM) $$($1_$2_DEP).exitvalue ; \\
+ ($(ECHO) $$@: \\ ; \
+ $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_$2_DEP).raw) | $(SORT) -u > $$($1_$2_DEP) ; \
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_$2_DEP) > $$($1_$2_DEP_TARGETS)
endif
endif
@@ -265,6 +270,8 @@
# LD the linker to use, default is $(LD)
# OPTIMIZATION sets optimization level to NONE, LOW, HIGH, HIGHEST
# DISABLED_WARNINGS_<toolchain> Disable the given warnings for the specified toolchain
+# STRIP_SYMBOLS Set to true to strip the final binary if the toolchain allows for it
+# STRIPFLAGS Optionally change the flags given to the strip command
SetupNativeCompilation = $(NamedParamsMacroTemplate)
define SetupNativeCompilationBody
@@ -368,6 +375,7 @@
$$(call SetIfEmpty, $1_AS, $$($$($1_TOOLCHAIN)_AS))
$$(call SetIfEmpty, $1_MT, $$($$($1_TOOLCHAIN)_MT))
$$(call SetIfEmpty, $1_RC, $$($$($1_TOOLCHAIN)_RC))
+ $$(call SetIfEmpty, $1_STRIP, $$($$($1_TOOLCHAIN)_STRIP))
$$(call SetIfEmpty, $1_SYSROOT_CFLAGS, $$($$($1_TOOLCHAIN)_SYSROOT_CFLAGS))
$$(call SetIfEmpty, $1_SYSROOT_LDFLAGS, $$($$($1_TOOLCHAIN)_SYSROOT_LDFLAGS))
@@ -628,6 +636,10 @@
"-map:$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).map"
$1_DEBUGINFO_FILES := $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).pdb \
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).map
+ # No separate command is needed for debuginfo on windows, instead
+ # touch target to make sure it has a later time stamp than the debug
+ # symbol files to avoid unnecessary relinking on rebuild.
+ $1_CREATE_DEBUGINFO_CMDS := $(TOUCH) $$($1_TARGET)
else ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris), )
$1_DEBUGINFO_FILES := $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).debuginfo
@@ -662,6 +674,14 @@
endif # $1_DEBUG_SYMBOLS
endif # !STATIC_LIBRARY
+ ifeq ($$($1_STRIP_SYMBOLS), true)
+ ifneq ($$($1_STRIP), )
+ # Default to using the global STRIPFLAGS. Allow for overriding with an empty value
+ $1_STRIPFLAGS ?= $(STRIPFLAGS)
+ $1_STRIP_CMD := $$($1_STRIP) $$($1_STRIPFLAGS) $$($1_TARGET)
+ endif
+ endif
+
ifneq (,$$($1_LIBRARY))
# Generating a dynamic library.
$1_EXTRA_LDFLAGS += $$(call SET_SHARED_LIBRARY_NAME,$$($1_BASENAME))
@@ -672,19 +692,21 @@
$1_EXTRA_LDFLAGS_SUFFIX += $(GLOBAL_LDFLAGS_SUFFIX)
$1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
- $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX) $$($1_CREATE_DEBUGINFO_CMDS)
+ $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX) $$($1_CREATE_DEBUGINFO_CMDS) \
+ $$($1_STRIP_CMD)
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
$$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_REAL_MAPFILE) \
$$($1_VARDEPS_FILE)
- $(ECHO) $(LOG_INFO) "Linking $$($1_BASENAME)"
+ $(ECHO) $(LOG_INFO) "Linking $$($1_BASENAME)" ; \
$(call LogFailures, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link.log, $$($1_SAFE_NAME)_link, \
$$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \
$(LD_OUT_OPTION)$$@ \
$$($1_EXPECTED_OBJS) $$($1_RES) \
- $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX))
+ $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)) ; \
$$($1_CREATE_DEBUGINFO_CMDS)
+ $$($1_STRIP_CMD)
# Touch target to make sure it has a later time stamp than the debug
# symbol files to avoid unnecessary relinking on rebuild.
ifeq ($(OPENJDK_TARGET_OS), windows)
@@ -713,13 +735,14 @@
$1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
$$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX) $$($1_MT) \
- $$($1_CODESIGN) $$($1_CREATE_DEBUGINFO_CMDS) $$($1_MANIFEST_VERSION)
+ $$($1_CODESIGN) $$($1_CREATE_DEBUGINFO_CMDS) $$($1_MANIFEST_VERSION) \
+ $$($1_STRIP_CMD)
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
$$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_MANIFEST) \
$$($1_VARDEPS_FILE)
- $(ECHO) $(LOG_INFO) "Linking executable $$($1_BASENAME)"
+ $(ECHO) $(LOG_INFO) "Linking executable $$($1_BASENAME)" ; \
$(call LogFailures, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link.log, $$($1_SAFE_NAME)_link, \
$$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \
$(EXE_OUT_OPTION)$$($1_TARGET) \
@@ -738,6 +761,7 @@
endif
endif
$$($1_CREATE_DEBUGINFO_CMDS)
+ $$($1_STRIP_CMD)
# Touch target to make sure it has a later time stamp than the debug
# symbol files to avoid unnecessary relinking on rebuild.
ifeq ($(OPENJDK_TARGET_OS), windows)
--- a/make/common/RMICompilation.gmk Tue Oct 06 13:20:21 2015 -0700
+++ b/make/common/RMICompilation.gmk Wed Jul 05 20:52:05 2017 +0200
@@ -34,8 +34,6 @@
# STUB_CLASSES_DIR:=Directory in where to put stub classes
# RUN_V11:=Set to run rmic with -v1.1
# RUN_V12:=Set to run rmic with -v1.2
-# RUN_IIOP:=Set to run rmic with -iiop
-# RUN_IIOP_STDPKG:=Set to run rmic with -iiop -standardPackage
# KEEP_GENERATED:=Set to keep generated sources around
SetupRMICompilation = $(NamedParamsMacroTemplate)
define SetupRMICompilationBody
@@ -60,15 +58,6 @@
$1_TIE_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/org/omg/stub/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES)))
$1_TIE_STDPKG_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES)))
- ifneq (,$$($1_RUN_IIOP))
- $1_TARGETS += $$($1_TIE_FILES)
- $1_ARGS += -iiop -emitPermissionCheck
- endif
- ifneq (,$$($1_RUN_IIOP_STDPKG))
- $1_TARGETS += $$($1_TIE_STDPKG_FILES)
- $1_ARGS2 := -iiop -emitPermissionCheck -standardPackage
- endif
-
ifneq (,$$($1_KEEP_GENERATED))
$1_ARGS += -keepgenerated
$1_TARGETS += $$(subst .class,.java,$$($1_TARGETS))
--- a/modules.xml Tue Oct 06 13:20:21 2015 -0700
+++ b/modules.xml Wed Jul 05 20:52:05 2017 +0200
@@ -223,6 +223,16 @@
<to>jdk.dev</to>
</export>
<export>
+ <name>jdk.internal.misc</name>
+ <to>java.corba</to>
+ <to>java.desktop</to>
+ <to>java.logging</to>
+ <to>java.management</to>
+ <to>java.naming</to>
+ <to>java.sql</to>
+ <to>jdk.management.resource</to>
+ </export>
+ <export>
<name>jdk.internal.org.objectweb.asm</name>
<to>java.instrument</to>
<to>jdk.jfr</to>
@@ -265,7 +275,6 @@
<to>java.rmi</to>
<to>java.security.jgss</to>
<to>java.security.sasl</to>
- <to>java.sql</to>
<to>java.xml</to>
<to>java.xml.ws</to>
<to>jdk.charsets</to>
--- a/test/make/TestMakeBase.gmk Tue Oct 06 13:20:21 2015 -0700
+++ b/test/make/TestMakeBase.gmk Wed Jul 05 20:52:05 2017 +0200
@@ -213,23 +213,20 @@
VARDEP_TEST_VAR2 := value3
VARDEP_RETURN_VALUE := $(call DependOnVariable, VARDEP_TEST_VAR2, $(VARDEP_VALUE_FILE))
-ifneq ($(VARDEP_VALUE_FILE), $(VARDEP_RETURN_VALUE))
- $(error Expected: $(VARDEP_VALUE_FILE) - DependOnVariable: $(VARDEP_RETURN_VALUE))
-endif
+$(eval $(call assert-equals, $(VARDEP_RETURN_VALUE), $(VARDEP_VALUE_FILE), \
+ Wrong filename returned))
VARDEP_FILE_CONTENTS := $(shell $(CAT) $(VARDEP_VALUE_FILE))
-ifneq ($(VARDEP_TEST_VAR2), $(VARDEP_FILE_CONTENTS))
- $(error Expected: $(VARDEP_TEST_VAR2) - DependOnVariable file contained: \
- $(VARDEP_FILE_CONTENTS))
-endif
+$(eval $(call assert-equals, $(VARDEP_FILE_CONTENTS), \
+ VARDEP_TEST_VAR2_old:=$(VARDEP_TEST_VAR2), \
+ Wrong contents in vardeps file))
# Test with a variable value containing some problematic characters
VARDEP_TEST_VAR3 := foo '""' "''" bar
VARDEP_VALUE_FILE := $(call DependOnVariable, VARDEP_TEST_VAR3)
VARDEP_FILE_CONTENTS := $(shell $(CAT) $(VARDEP_VALUE_FILE))
-ifneq ($(VARDEP_TEST_VAR3), $(VARDEP_FILE_CONTENTS))
- $(error Expected: >$(VARDEP_TEST_VAR3)< - DependOnVariable file contained: \
- >$(VARDEP_FILE_CONTENTS)<)
-endif
+$(eval $(call assert-equals, $(VARDEP_FILE_CONTENTS), \
+ VARDEP_TEST_VAR3_old:=$(VARDEP_TEST_VAR3), \
+ Wrong contents in vardep file))
TEST_TARGETS += test-vardep