Merge
This commit is contained in:
commit
78d80ec624
@ -326,3 +326,4 @@ f7c5ae2933c0b8510a420d1713a955e4ffc7ad0b jdk9-b80
|
|||||||
b8afcf91331d78626a583ec1b63164468d6f4181 jdk9-b81
|
b8afcf91331d78626a583ec1b63164468d6f4181 jdk9-b81
|
||||||
42b56d1f418523ecb61a49d7493302c80c8009cc jdk9-b82
|
42b56d1f418523ecb61a49d7493302c80c8009cc jdk9-b82
|
||||||
ce5c14d97d95084504c32b9320cb33cce4235588 jdk9-b83
|
ce5c14d97d95084504c32b9320cb33cce4235588 jdk9-b83
|
||||||
|
1c8134475511ffe6726677e1418a89a7a45e92d6 jdk9-b84
|
||||||
|
@ -62,7 +62,7 @@ export RM="@RM@"
|
|||||||
export SED="@SED@"
|
export SED="@SED@"
|
||||||
export SORT="@SORT@"
|
export SORT="@SORT@"
|
||||||
export STAT="@STAT@"
|
export STAT="@STAT@"
|
||||||
export STRIP="@POST_STRIP_CMD@"
|
export STRIP="@STRIP@ @STRIPFLAGS@"
|
||||||
export TEE="@TEE@"
|
export TEE="@TEE@"
|
||||||
export UNIQ="@UNIQ@"
|
export UNIQ="@UNIQ@"
|
||||||
export UNPACK200="@FIXPATH@ @BOOT_JDK@/bin/unpack200"
|
export UNPACK200="@FIXPATH@ @BOOT_JDK@/bin/unpack200"
|
||||||
|
@ -165,6 +165,11 @@ SRCDIRS_SETUP_OUTPUT_DIRS
|
|||||||
# First determine the toolchain type (compiler family)
|
# First determine the toolchain type (compiler family)
|
||||||
TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE
|
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
|
# Then detect the actual binaries needed
|
||||||
TOOLCHAIN_PRE_DETECTION
|
TOOLCHAIN_PRE_DETECTION
|
||||||
TOOLCHAIN_DETECT_TOOLCHAIN_CORE
|
TOOLCHAIN_DETECT_TOOLCHAIN_CORE
|
||||||
|
@ -23,6 +23,100 @@
|
|||||||
# questions.
|
# 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],
|
AC_DEFUN_ONCE([FLAGS_SETUP_INIT_FLAGS],
|
||||||
[
|
[
|
||||||
# Option used to tell the compiler whether to create 32- or 64-bit executables
|
# Option used to tell the compiler whether to create 32- or 64-bit executables
|
||||||
@ -60,10 +154,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_INIT_FLAGS],
|
|||||||
STRIPFLAGS="-X32_64"
|
STRIPFLAGS="-X32_64"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" != xwindows; then
|
AC_SUBST(STRIPFLAGS)
|
||||||
POST_STRIP_CMD="$STRIP $STRIPFLAGS"
|
|
||||||
fi
|
|
||||||
AC_SUBST(POST_STRIP_CMD)
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
CC_OUT_OPTION=-Fo
|
CC_OUT_OPTION=-Fo
|
||||||
@ -113,44 +204,6 @@ AC_DEFUN_ONCE([FLAGS_SETUP_INIT_FLAGS],
|
|||||||
# silence copyright notice and other headers.
|
# silence copyright notice and other headers.
|
||||||
COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
|
COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
|
||||||
fi
|
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],
|
AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
|
||||||
@ -480,39 +533,9 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
|||||||
CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
|
CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
|
CFLAGS_JDK="${CFLAGS_JDK} $EXTRA_CFLAGS"
|
||||||
AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags])
|
CXXFLAGS_JDK="${CXXFLAGS_JDK} $EXTRA_CXXFLAGS"
|
||||||
fi
|
LDFLAGS_JDK="${LDFLAGS_JDK} $EXTRA_LDFLAGS"
|
||||||
|
|
||||||
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)
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
|
@ -705,9 +705,6 @@ CXXFLAGS_JDKLIB
|
|||||||
CFLAGS_JDKEXE
|
CFLAGS_JDKEXE
|
||||||
CFLAGS_JDKLIB
|
CFLAGS_JDKLIB
|
||||||
MACOSX_VERSION_MIN
|
MACOSX_VERSION_MIN
|
||||||
LEGACY_EXTRA_LDFLAGS
|
|
||||||
LEGACY_EXTRA_CXXFLAGS
|
|
||||||
LEGACY_EXTRA_CFLAGS
|
|
||||||
CXX_O_FLAG_NONE
|
CXX_O_FLAG_NONE
|
||||||
CXX_O_FLAG_DEBUG
|
CXX_O_FLAG_DEBUG
|
||||||
CXX_O_FLAG_NORM
|
CXX_O_FLAG_NORM
|
||||||
@ -728,14 +725,12 @@ SET_SHARED_LIBRARY_ORIGIN
|
|||||||
SET_EXECUTABLE_ORIGIN
|
SET_EXECUTABLE_ORIGIN
|
||||||
CXX_FLAG_REORDER
|
CXX_FLAG_REORDER
|
||||||
C_FLAG_REORDER
|
C_FLAG_REORDER
|
||||||
SYSROOT_LDFLAGS
|
|
||||||
SYSROOT_CFLAGS
|
|
||||||
RC_FLAGS
|
RC_FLAGS
|
||||||
AR_OUT_OPTION
|
AR_OUT_OPTION
|
||||||
LD_OUT_OPTION
|
LD_OUT_OPTION
|
||||||
EXE_OUT_OPTION
|
EXE_OUT_OPTION
|
||||||
CC_OUT_OPTION
|
CC_OUT_OPTION
|
||||||
POST_STRIP_CMD
|
STRIPFLAGS
|
||||||
ARFLAGS
|
ARFLAGS
|
||||||
COMPILER_TARGET_BITS_FLAG
|
COMPILER_TARGET_BITS_FLAG
|
||||||
JT_HOME
|
JT_HOME
|
||||||
@ -747,6 +742,8 @@ HOTSPOT_LD
|
|||||||
HOTSPOT_CXX
|
HOTSPOT_CXX
|
||||||
HOTSPOT_RC
|
HOTSPOT_RC
|
||||||
HOTSPOT_MT
|
HOTSPOT_MT
|
||||||
|
BUILD_SYSROOT_LDFLAGS
|
||||||
|
BUILD_SYSROOT_CFLAGS
|
||||||
BUILD_LD
|
BUILD_LD
|
||||||
BUILD_CXX
|
BUILD_CXX
|
||||||
BUILD_CC
|
BUILD_CC
|
||||||
@ -793,6 +790,11 @@ VS_LIB
|
|||||||
VS_INCLUDE
|
VS_INCLUDE
|
||||||
VS_PATH
|
VS_PATH
|
||||||
CYGWIN_LINK
|
CYGWIN_LINK
|
||||||
|
SYSROOT_LDFLAGS
|
||||||
|
SYSROOT_CFLAGS
|
||||||
|
LEGACY_EXTRA_LDFLAGS
|
||||||
|
LEGACY_EXTRA_CXXFLAGS
|
||||||
|
LEGACY_EXTRA_CFLAGS
|
||||||
EXE_SUFFIX
|
EXE_SUFFIX
|
||||||
OBJ_SUFFIX
|
OBJ_SUFFIX
|
||||||
STATIC_LIBRARY
|
STATIC_LIBRARY
|
||||||
@ -1078,11 +1080,11 @@ with_override_nashorn
|
|||||||
with_override_jdk
|
with_override_jdk
|
||||||
with_import_hotspot
|
with_import_hotspot
|
||||||
with_toolchain_type
|
with_toolchain_type
|
||||||
with_toolchain_version
|
|
||||||
with_jtreg
|
|
||||||
with_extra_cflags
|
with_extra_cflags
|
||||||
with_extra_cxxflags
|
with_extra_cxxflags
|
||||||
with_extra_ldflags
|
with_extra_ldflags
|
||||||
|
with_toolchain_version
|
||||||
|
with_jtreg
|
||||||
enable_warnings_as_errors
|
enable_warnings_as_errors
|
||||||
enable_debug_symbols
|
enable_debug_symbols
|
||||||
enable_zip_debug_info
|
enable_zip_debug_info
|
||||||
@ -1937,14 +1939,14 @@ Optional Packages:
|
|||||||
source
|
source
|
||||||
--with-toolchain-type the toolchain type (or family) to use, use '--help'
|
--with-toolchain-type the toolchain type (or family) to use, use '--help'
|
||||||
to show possible values [platform dependent]
|
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
|
--with-toolchain-version
|
||||||
the version of the toolchain to look for, use
|
the version of the toolchain to look for, use
|
||||||
'--help' to show possible values [platform
|
'--help' to show possible values [platform
|
||||||
dependent]
|
dependent]
|
||||||
--with-jtreg Regression Test Harness [probed]
|
--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-x use the X Window System
|
||||||
--with-cups specify prefix directory for the cups package
|
--with-cups specify prefix directory for the cups package
|
||||||
(expecting the headers under PATH/include)
|
(expecting the headers under PATH/include)
|
||||||
@ -3767,6 +3769,15 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
|
|||||||
# questions.
|
# 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 @@ msys_help() {
|
|||||||
|
|
||||||
apt_help() {
|
apt_help() {
|
||||||
case $1 in
|
case $1 in
|
||||||
|
reduced)
|
||||||
|
PKGHANDLER_COMMAND="sudo apt-get install gcc-multilib g++-multilib" ;;
|
||||||
devkit)
|
devkit)
|
||||||
PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
|
PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
|
||||||
openjdk)
|
openjdk)
|
||||||
@ -4362,7 +4375,7 @@ VS_SDK_PLATFORM_NAME_2013=
|
|||||||
#CUSTOM_AUTOCONF_INCLUDE
|
#CUSTOM_AUTOCONF_INCLUDE
|
||||||
|
|
||||||
# Do not change or remove the following line, it is needed for consistency checks:
|
# 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 @@ $as_echo "$as_me: Using user selected toolchain $TOOLCHAIN_TYPE ($TOOLCHAIN_DESC
|
|||||||
fi
|
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
|
# Then detect the actual binaries needed
|
||||||
|
|
||||||
# FIXME: Is this needed?
|
# FIXME: Is this needed?
|
||||||
@ -40555,12 +40671,16 @@ $as_echo "$as_me: Rewriting BUILD_LD to \"$new_complete\"" >&6;}
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
BUILD_SYSROOT_CFLAGS=""
|
||||||
|
BUILD_SYSROOT_LDFLAGS=""
|
||||||
else
|
else
|
||||||
# If we are not cross compiling, use the normal target compilers for
|
# If we are not cross compiling, use the normal target compilers for
|
||||||
# building the build platform executables.
|
# building the build platform executables.
|
||||||
BUILD_CC="$CC"
|
BUILD_CC="$CC"
|
||||||
BUILD_CXX="$CXX"
|
BUILD_CXX="$CXX"
|
||||||
BUILD_LD="$LD"
|
BUILD_LD="$LD"
|
||||||
|
BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
|
||||||
|
BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -40568,6 +40688,8 @@ $as_echo "$as_me: Rewriting BUILD_LD to \"$new_complete\"" >&6;}
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
# For hotspot, we need these in Windows mixed path,
|
# For hotspot, we need these in Windows mixed path,
|
||||||
# so rewrite them all. Need added .exe suffix.
|
# so rewrite them all. Need added .exe suffix.
|
||||||
@ -41252,9 +41374,6 @@ $as_echo "$tool_specified" >&6; }
|
|||||||
STRIPFLAGS="-X32_64"
|
STRIPFLAGS="-X32_64"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" != xwindows; then
|
|
||||||
POST_STRIP_CMD="$STRIP $STRIPFLAGS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
@ -41306,44 +41425,6 @@ $as_echo "$tool_specified" >&6; }
|
|||||||
COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
|
COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
|
||||||
fi
|
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!
|
# FIXME: Currently we must test this after toolchain but before flags. Fix!
|
||||||
|
|
||||||
@ -41543,8 +41624,38 @@ else
|
|||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to compile stdio.h. This likely implies missing compile dependencies." >&5
|
{ $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;}
|
$as_echo "$as_me: Failed to compile stdio.h. This likely implies missing compile dependencies." >&6;}
|
||||||
if test "x$COMPILE_TYPE" = xreduced; then
|
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
|
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:${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;}
|
$as_echo "$as_me: You are doing a cross-compilation. Check that you have all target platform libraries installed." >&6;}
|
||||||
@ -41603,8 +41714,8 @@ $as_echo "$as_me: WARNING: The number of bits in the target could not be determi
|
|||||||
# Let's try to implicitely set the compilers target architecture and retry the test
|
# 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:${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: 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:${as_lineno-$LINENO}: Retrying with 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: 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
|
# When we add flags to the "official" CFLAGS etc, we need to
|
||||||
# keep track of these additions in ADDED_CFLAGS etc. These
|
# keep track of these additions in ADDED_CFLAGS etc. These
|
||||||
@ -41667,7 +41778,46 @@ _ACEOF
|
|||||||
TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p`
|
TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p`
|
||||||
|
|
||||||
if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then
|
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
|
fi
|
||||||
fi
|
fi
|
||||||
@ -42267,54 +42417,9 @@ $as_echo "$supports" >&6; }
|
|||||||
CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
|
CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
|
CFLAGS_JDK="${CFLAGS_JDK} $EXTRA_CFLAGS"
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&5
|
CXXFLAGS_JDK="${CXXFLAGS_JDK} $EXTRA_CXXFLAGS"
|
||||||
$as_echo "$as_me: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&2;}
|
LDFLAGS_JDK="${LDFLAGS_JDK} $EXTRA_LDFLAGS"
|
||||||
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"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
|
@ -97,6 +97,8 @@ msys_help() {
|
|||||||
|
|
||||||
apt_help() {
|
apt_help() {
|
||||||
case $1 in
|
case $1 in
|
||||||
|
reduced)
|
||||||
|
PKGHANDLER_COMMAND="sudo apt-get install gcc-multilib g++-multilib" ;;
|
||||||
devkit)
|
devkit)
|
||||||
PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
|
PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
|
||||||
openjdk)
|
openjdk)
|
||||||
|
@ -48,8 +48,8 @@ ALT_CUPS_HEADERS_PATH:=$(patsubst -I%,%,$(filter -I%,@CUPS_CFLAGS@))
|
|||||||
|
|
||||||
# The HOSTCC/HOSTCXX is Hotspot terminology for the BUILD_CC/BUILD_CXX, i.e. the
|
# 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.
|
# compiler that produces code that can be run on the build platform.
|
||||||
HOSTCC:=@FIXPATH@ @BUILD_CC@
|
HOSTCC:=@FIXPATH@ @BUILD_CC@ $(BUILD_SYSROOT_CFLAGS)
|
||||||
HOSTCXX:=@FIXPATH@ @BUILD_CXX@
|
HOSTCXX:=@FIXPATH@ @BUILD_CXX@ $(BUILD_SYSROOT_CFLAGS)
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
#
|
#
|
||||||
|
@ -489,7 +489,8 @@ AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_BITS],
|
|||||||
AC_CHECK_HEADERS([stdio.h], , [
|
AC_CHECK_HEADERS([stdio.h], , [
|
||||||
AC_MSG_NOTICE([Failed to compile stdio.h. This likely implies missing compile dependencies.])
|
AC_MSG_NOTICE([Failed to compile stdio.h. This likely implies missing compile dependencies.])
|
||||||
if test "x$COMPILE_TYPE" = xreduced; then
|
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
|
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.])
|
AC_MSG_NOTICE([You are doing a cross-compilation. Check that you have all target platform libraries installed.])
|
||||||
fi
|
fi
|
||||||
@ -509,7 +510,7 @@ AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_BITS],
|
|||||||
# This situation may happen on 64-bit platforms where the compiler by default only generates 32-bit objects
|
# 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
|
# 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([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
|
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!
|
# We have to unset 'ac_cv_sizeof_int_p' first, otherwise AC_CHECK_SIZEOF will use the previously cached value!
|
||||||
@ -524,7 +525,14 @@ _ACEOF
|
|||||||
TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p`
|
TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p`
|
||||||
|
|
||||||
if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then
|
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
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -367,6 +367,8 @@ LDFLAGS_TESTEXE_SUFFIX:=@LDFLAGS_TESTEXE_SUFFIX@
|
|||||||
# build platform.
|
# build platform.
|
||||||
BUILD_CC:=@FIXPATH@ @BUILD_CC@
|
BUILD_CC:=@FIXPATH@ @BUILD_CC@
|
||||||
BUILD_LD:=@FIXPATH@ @BUILD_LD@
|
BUILD_LD:=@FIXPATH@ @BUILD_LD@
|
||||||
|
BUILD_SYSROOT_CFLAGS:=@BUILD_SYSROOT_CFLAGS@
|
||||||
|
BUILD_SYSROOT_LDFLAGS:=@BUILD_SYSROOT_LDFLAGS@
|
||||||
|
|
||||||
AS:=@FIXPATH@ @AS@
|
AS:=@FIXPATH@ @AS@
|
||||||
|
|
||||||
@ -421,7 +423,7 @@ STATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@
|
|||||||
EXE_SUFFIX:=@EXE_SUFFIX@
|
EXE_SUFFIX:=@EXE_SUFFIX@
|
||||||
OBJ_SUFFIX:=@OBJ_SUFFIX@
|
OBJ_SUFFIX:=@OBJ_SUFFIX@
|
||||||
|
|
||||||
POST_STRIP_CMD:=@POST_STRIP_CMD@
|
STRIPFLAGS:=@STRIPFLAGS@
|
||||||
|
|
||||||
JAVA_FLAGS:=@JAVA_FLAGS@
|
JAVA_FLAGS:=@JAVA_FLAGS@
|
||||||
JAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@
|
JAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@
|
||||||
@ -461,9 +463,6 @@ INTERIM_LANGTOOLS_ARGS = "-Xbootclasspath/p:$(INTERIM_LANGTOOLS_JAR)" -cp $(INTE
|
|||||||
NEW_JAVAC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javac.Main
|
NEW_JAVAC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javac.Main
|
||||||
NEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javadoc.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
|
# Base flags for RC
|
||||||
# Guarding this against resetting value. Legacy make files include spec multiple
|
# Guarding this against resetting value. Legacy make files include spec multiple
|
||||||
# times.
|
# times.
|
||||||
|
@ -656,17 +656,23 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
|
|||||||
BASIC_FIXUP_EXECUTABLE(BUILD_CXX)
|
BASIC_FIXUP_EXECUTABLE(BUILD_CXX)
|
||||||
BASIC_PATH_PROGS(BUILD_LD, ld)
|
BASIC_PATH_PROGS(BUILD_LD, ld)
|
||||||
BASIC_FIXUP_EXECUTABLE(BUILD_LD)
|
BASIC_FIXUP_EXECUTABLE(BUILD_LD)
|
||||||
|
BUILD_SYSROOT_CFLAGS=""
|
||||||
|
BUILD_SYSROOT_LDFLAGS=""
|
||||||
else
|
else
|
||||||
# If we are not cross compiling, use the normal target compilers for
|
# If we are not cross compiling, use the normal target compilers for
|
||||||
# building the build platform executables.
|
# building the build platform executables.
|
||||||
BUILD_CC="$CC"
|
BUILD_CC="$CC"
|
||||||
BUILD_CXX="$CXX"
|
BUILD_CXX="$CXX"
|
||||||
BUILD_LD="$LD"
|
BUILD_LD="$LD"
|
||||||
|
BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
|
||||||
|
BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(BUILD_CC)
|
AC_SUBST(BUILD_CC)
|
||||||
AC_SUBST(BUILD_CXX)
|
AC_SUBST(BUILD_CXX)
|
||||||
AC_SUBST(BUILD_LD)
|
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
|
# Setup legacy variables that are still needed as alternative ways to refer to
|
||||||
|
@ -486,3 +486,4 @@ e9e63d93bbfe2c6c23447e2c1f5cc71c98671cba jdk9-b79
|
|||||||
4142c190cd5ca4fb70ec367b4f97ef936272d8ef jdk9-b81
|
4142c190cd5ca4fb70ec367b4f97ef936272d8ef jdk9-b81
|
||||||
1c453a12be3036d482abef1dd470f8aff536b6b9 jdk9-b82
|
1c453a12be3036d482abef1dd470f8aff536b6b9 jdk9-b82
|
||||||
3ed0df2c553a80e0e26b91a6ce08806ea17a066a jdk9-b83
|
3ed0df2c553a80e0e26b91a6ce08806ea17a066a jdk9-b83
|
||||||
|
184c4328444974edd6b3b490b9d0177ace7e331c jdk9-b84
|
||||||
|
@ -26,169 +26,6 @@
|
|||||||
|
|
||||||
SUNWprivate_1.1 {
|
SUNWprivate_1.1 {
|
||||||
global:
|
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;
|
JVM_handle_linux_signal;
|
||||||
|
|
||||||
# debug JVM
|
# debug JVM
|
||||||
|
@ -26,167 +26,6 @@
|
|||||||
|
|
||||||
SUNWprivate_1.1 {
|
SUNWprivate_1.1 {
|
||||||
global:
|
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;
|
JVM_handle_linux_signal;
|
||||||
|
|
||||||
# miscellaneous functions
|
# miscellaneous functions
|
||||||
|
@ -220,10 +220,12 @@ JVM_OBJ_FILES = $(Obj_Files)
|
|||||||
|
|
||||||
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
|
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 $@
|
rm -f $@
|
||||||
awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \
|
awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \
|
||||||
{ system ("cat vm.def"); } \
|
{ system ("cat ${MAPFILE_SHARE} vm.def"); } \
|
||||||
else \
|
else \
|
||||||
{ print $$0 } \
|
{ print $$0 } \
|
||||||
}' > $@ < $(MAPFILE)
|
}' > $@ < $(MAPFILE)
|
||||||
|
@ -24,171 +24,9 @@
|
|||||||
# Only used for OSX/Darwin builds
|
# Only used for OSX/Darwin builds
|
||||||
|
|
||||||
# Define public interface.
|
# 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
|
_JVM_handle_bsd_signal
|
||||||
|
|
||||||
# miscellaneous functions
|
# miscellaneous functions
|
||||||
_jio_fprintf
|
_jio_fprintf
|
||||||
_jio_printf
|
_jio_printf
|
||||||
_jio_snprintf
|
_jio_snprintf
|
||||||
|
@ -24,168 +24,6 @@
|
|||||||
# Only used for OSX/Darwin builds
|
# Only used for OSX/Darwin builds
|
||||||
|
|
||||||
# Define public interface.
|
# 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
|
_JVM_handle_bsd_signal
|
||||||
|
|
||||||
# miscellaneous functions
|
# miscellaneous functions
|
||||||
|
@ -26,168 +26,6 @@
|
|||||||
|
|
||||||
SUNWprivate_1.1 {
|
SUNWprivate_1.1 {
|
||||||
global:
|
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;
|
JVM_handle_linux_signal;
|
||||||
|
|
||||||
# miscellaneous functions
|
# miscellaneous functions
|
||||||
|
@ -26,168 +26,6 @@
|
|||||||
|
|
||||||
SUNWprivate_1.1 {
|
SUNWprivate_1.1 {
|
||||||
global:
|
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;
|
JVM_handle_linux_signal;
|
||||||
|
|
||||||
# miscellaneous functions
|
# miscellaneous functions
|
||||||
|
@ -234,10 +234,29 @@ JVM_OBJ_FILES = $(Obj_Files)
|
|||||||
|
|
||||||
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
|
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 $@
|
rm -f $@
|
||||||
awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \
|
awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \
|
||||||
{ system ("cat mapfile_ext"); system ("cat vm.def"); } \
|
{ system ("cat mapfile_extra vm.def"); } \
|
||||||
else \
|
else \
|
||||||
{ print $$0 } \
|
{ print $$0 } \
|
||||||
}' > $@ < $(MAPFILE)
|
}' > $@ < $(MAPFILE)
|
||||||
|
@ -26,168 +26,6 @@
|
|||||||
|
|
||||||
SUNWprivate_1.1 {
|
SUNWprivate_1.1 {
|
||||||
global:
|
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;
|
JVM_handle_linux_signal;
|
||||||
|
|
||||||
# miscellaneous functions
|
# miscellaneous functions
|
||||||
|
@ -26,168 +26,6 @@
|
|||||||
|
|
||||||
SUNWprivate_1.1 {
|
SUNWprivate_1.1 {
|
||||||
global:
|
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;
|
JVM_handle_linux_signal;
|
||||||
|
|
||||||
# miscellaneous functions
|
# miscellaneous functions
|
||||||
|
@ -232,10 +232,17 @@ JVM_OBJ_FILES = $(Obj_Files)
|
|||||||
|
|
||||||
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
|
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 $@
|
rm -f $@
|
||||||
awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \
|
awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \
|
||||||
{ system ("cat mapfile_ext"); system ("cat vm.def"); } \
|
{ system ("cat ${MAPFILE_SHARE} $(MAPFILE_EXT) vm.def"); } \
|
||||||
else \
|
else \
|
||||||
{ print $$0 } \
|
{ print $$0 } \
|
||||||
}' > $@ < $(MAPFILE)
|
}' > $@ < $(MAPFILE)
|
||||||
@ -259,13 +266,6 @@ ifneq ($(VM_DEF_EXT),)
|
|||||||
cat $(VM_DEF_EXT) >> $@
|
cat $(VM_DEF_EXT) >> $@
|
||||||
endif
|
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)
|
ifeq ($(JVM_VARIANT_ZEROSHARK), true)
|
||||||
STATIC_CXX = false
|
STATIC_CXX = false
|
||||||
else
|
else
|
||||||
|
162
hotspot/make/share/makefiles/mapfile-vers
Normal file
162
hotspot/make/share/makefiles/mapfile-vers
Normal file
@ -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;
|
@ -26,168 +26,6 @@
|
|||||||
|
|
||||||
SUNWprivate_1.1 {
|
SUNWprivate_1.1 {
|
||||||
global:
|
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;
|
JVM_handle_solaris_signal;
|
||||||
|
|
||||||
# miscellaneous functions
|
# miscellaneous functions
|
||||||
|
@ -241,13 +241,19 @@ JVM_OBJ_FILES = $(Obj_Files) $(DTRACE_OBJS)
|
|||||||
|
|
||||||
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
|
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 $@
|
rm -f $@
|
||||||
cat $(MAPFILE) $(MAPFILE_DTRACE_OPT) \
|
cat $(MAPFILE) $(MAPFILE_DTRACE_OPT) \
|
||||||
| $(NAWK) '{ \
|
| $(NAWK) '{ \
|
||||||
if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") { \
|
if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") { \
|
||||||
system ("cat mapfile_ext"); \
|
system ("cat ${MAPFILE_SHARE} $(MAPFILE_EXT) vm.def"); \
|
||||||
system ("cat vm.def"); \
|
|
||||||
} else { \
|
} else { \
|
||||||
print $$0; \
|
print $$0; \
|
||||||
} \
|
} \
|
||||||
@ -260,12 +266,6 @@ mapfile_extended : mapfile $(MAPFILE_DTRACE_OPT)
|
|||||||
vm.def: $(Obj_Files)
|
vm.def: $(Obj_Files)
|
||||||
sh $(GAMMADIR)/make/solaris/makefiles/build_vm_def.sh *.o > $@
|
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)
|
ifeq ($(LINK_INTO),AOUT)
|
||||||
LIBJVM.o =
|
LIBJVM.o =
|
||||||
|
@ -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.
|
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
@ -1608,6 +1608,8 @@ void InterpreterMacroAssembler::profile_return_type(Register mdp, Register ret,
|
|||||||
test_method_data_pointer(mdp, profile_continue);
|
test_method_data_pointer(mdp, profile_continue);
|
||||||
|
|
||||||
if (MethodData::profile_return_jsr292_only()) {
|
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
|
// 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
|
// 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
|
// begining of the ProfileData we intend to update to check its
|
||||||
@ -1620,7 +1622,7 @@ void InterpreterMacroAssembler::profile_return_type(Register mdp, Register ret,
|
|||||||
cmp(rscratch1, Bytecodes::_invokehandle);
|
cmp(rscratch1, Bytecodes::_invokehandle);
|
||||||
br(Assembler::EQ, do_profile);
|
br(Assembler::EQ, do_profile);
|
||||||
get_method(tmp);
|
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);
|
cmp(rscratch1, vmIntrinsics::_compiledLambdaForm);
|
||||||
br(Assembler::NE, profile_continue);
|
br(Assembler::NE, profile_continue);
|
||||||
|
|
||||||
|
@ -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.
|
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
@ -188,9 +188,11 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
|
|||||||
address entry_point = __ pc();
|
address entry_point = __ pc();
|
||||||
|
|
||||||
if (VerifyMethodHandles) {
|
if (VerifyMethodHandles) {
|
||||||
|
assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2");
|
||||||
|
|
||||||
Label L;
|
Label L;
|
||||||
BLOCK_COMMENT("verify_intrinsic_id {");
|
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);
|
__ cmp(rscratch1, (int) iid);
|
||||||
__ br(Assembler::EQ, L);
|
__ br(Assembler::EQ, L);
|
||||||
if (iid == vmIntrinsics::_linkToVirtual ||
|
if (iid == vmIntrinsics::_linkToVirtual ||
|
||||||
|
@ -1817,13 +1817,15 @@ void InterpreterMacroAssembler::profile_return_type(Register ret, Register tmp1,
|
|||||||
test_method_data_pointer(profile_continue);
|
test_method_data_pointer(profile_continue);
|
||||||
|
|
||||||
if (MethodData::profile_return_jsr292_only()) {
|
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
|
// 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
|
// 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
|
// begining of the ProfileData we intend to update to check its
|
||||||
// type because we're right after it and we don't known its
|
// type because we're right after it and we don't known its
|
||||||
// length.
|
// length.
|
||||||
lbz(tmp1, 0, R14_bcp);
|
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(CCR0, tmp1, Bytecodes::_invokedynamic);
|
||||||
cmpwi(CCR1, tmp1, Bytecodes::_invokehandle);
|
cmpwi(CCR1, tmp1, Bytecodes::_invokehandle);
|
||||||
cror(CCR0, Assembler::equal, CCR1, Assembler::equal);
|
cror(CCR0, Assembler::equal, CCR1, Assembler::equal);
|
||||||
|
@ -224,11 +224,12 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
|
|||||||
address entry_point = __ pc();
|
address entry_point = __ pc();
|
||||||
|
|
||||||
if (VerifyMethodHandles) {
|
if (VerifyMethodHandles) {
|
||||||
|
assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2");
|
||||||
|
|
||||||
Label L;
|
Label L;
|
||||||
BLOCK_COMMENT("verify_intrinsic_id {");
|
BLOCK_COMMENT("verify_intrinsic_id {");
|
||||||
__ load_sized_value(temp1, Method::intrinsic_id_offset_in_bytes(), R19_method,
|
__ load_sized_value(temp1, Method::intrinsic_id_offset_in_bytes(), R19_method,
|
||||||
sizeof(u1), /*is_signed*/ false);
|
sizeof(u2), /*is_signed*/ false);
|
||||||
// assert(sizeof(u1) == sizeof(Method::_intrinsic_id), "");
|
|
||||||
__ cmpwi(CCR1, temp1, (int) iid);
|
__ cmpwi(CCR1, temp1, (int) iid);
|
||||||
__ beq(CCR1, L);
|
__ beq(CCR1, L);
|
||||||
if (iid == vmIntrinsics::_linkToVirtual ||
|
if (iid == vmIntrinsics::_linkToVirtual ||
|
||||||
|
@ -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.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -2021,6 +2021,8 @@ void InterpreterMacroAssembler::profile_return_type(Register ret, Register tmp1,
|
|||||||
test_method_data_pointer(profile_continue);
|
test_method_data_pointer(profile_continue);
|
||||||
|
|
||||||
if (MethodData::profile_return_jsr292_only()) {
|
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
|
// 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
|
// 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
|
// begining of the ProfileData we intend to update to check its
|
||||||
@ -2031,7 +2033,7 @@ void InterpreterMacroAssembler::profile_return_type(Register ret, Register tmp1,
|
|||||||
cmp_and_br_short(tmp1, Bytecodes::_invokedynamic, equal, pn, do_profile);
|
cmp_and_br_short(tmp1, Bytecodes::_invokedynamic, equal, pn, do_profile);
|
||||||
cmp(tmp1, Bytecodes::_invokehandle);
|
cmp(tmp1, Bytecodes::_invokehandle);
|
||||||
br(equal, false, pn, do_profile);
|
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);
|
cmp_and_br_short(tmp1, vmIntrinsics::_compiledLambdaForm, notEqual, pt, profile_continue);
|
||||||
|
|
||||||
bind(do_profile);
|
bind(do_profile);
|
||||||
|
@ -229,9 +229,11 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
|
|||||||
address entry_point = __ pc();
|
address entry_point = __ pc();
|
||||||
|
|
||||||
if (VerifyMethodHandles) {
|
if (VerifyMethodHandles) {
|
||||||
|
assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2");
|
||||||
|
|
||||||
Label L;
|
Label L;
|
||||||
BLOCK_COMMENT("verify_intrinsic_id {");
|
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);
|
__ cmp_and_br_short(O1_scratch, (int) iid, Assembler::equal, Assembler::pt, L);
|
||||||
if (iid == vmIntrinsics::_linkToVirtual ||
|
if (iid == vmIntrinsics::_linkToVirtual ||
|
||||||
iid == vmIntrinsics::_linkToSpecial) {
|
iid == vmIntrinsics::_linkToSpecial) {
|
||||||
|
@ -169,6 +169,8 @@ void InterpreterMacroAssembler::profile_return_type(Register mdp, Register ret,
|
|||||||
test_method_data_pointer(mdp, profile_continue);
|
test_method_data_pointer(mdp, profile_continue);
|
||||||
|
|
||||||
if (MethodData::profile_return_jsr292_only()) {
|
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
|
// 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
|
// 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
|
// begining of the ProfileData we intend to update to check its
|
||||||
@ -180,7 +182,7 @@ void InterpreterMacroAssembler::profile_return_type(Register mdp, Register ret,
|
|||||||
cmpb(Address(_bcp_register, 0), Bytecodes::_invokehandle);
|
cmpb(Address(_bcp_register, 0), Bytecodes::_invokehandle);
|
||||||
jcc(Assembler::equal, do_profile);
|
jcc(Assembler::equal, do_profile);
|
||||||
get_method(tmp);
|
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);
|
jcc(Assembler::notEqual, profile_continue);
|
||||||
|
|
||||||
bind(do_profile);
|
bind(do_profile);
|
||||||
|
@ -222,9 +222,11 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
|
|||||||
address entry_point = __ pc();
|
address entry_point = __ pc();
|
||||||
|
|
||||||
if (VerifyMethodHandles) {
|
if (VerifyMethodHandles) {
|
||||||
|
assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2");
|
||||||
|
|
||||||
Label L;
|
Label L;
|
||||||
BLOCK_COMMENT("verify_intrinsic_id {");
|
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);
|
__ jcc(Assembler::equal, L);
|
||||||
if (iid == vmIntrinsics::_linkToVirtual ||
|
if (iid == vmIntrinsics::_linkToVirtual ||
|
||||||
iid == vmIntrinsics::_linkToSpecial) {
|
iid == vmIntrinsics::_linkToSpecial) {
|
||||||
|
@ -1989,6 +1989,10 @@ methodHandle ClassFileParser::parse_method(bool is_interface,
|
|||||||
flags = JVM_ACC_STATIC;
|
flags = JVM_ACC_STATIC;
|
||||||
} else if ((flags & JVM_ACC_STATIC) == JVM_ACC_STATIC) {
|
} else if ((flags & JVM_ACC_STATIC) == JVM_ACC_STATIC) {
|
||||||
flags &= JVM_ACC_STATIC | JVM_ACC_STRICT;
|
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 {
|
} else {
|
||||||
verify_legal_method_modifiers(flags, is_interface, name, CHECK_(nullHandle));
|
verify_legal_method_modifiers(flags, is_interface, name, CHECK_(nullHandle));
|
||||||
|
@ -70,9 +70,12 @@ bool VerificationType::is_reference_assignable_from(
|
|||||||
if (this_class->is_interface() && (!from_field_is_protected ||
|
if (this_class->is_interface() && (!from_field_is_protected ||
|
||||||
from.name() != vmSymbols::java_lang_Object())) {
|
from.name() != vmSymbols::java_lang_Object())) {
|
||||||
// If we are not trying to access a protected field or method in
|
// If we are not trying to access a protected field or method in
|
||||||
// java.lang.Object then we treat interfaces as java.lang.Object,
|
// java.lang.Object then, for arrays, we only allow assignability
|
||||||
// including java.lang.Cloneable and java.io.Serializable.
|
// to interfaces java.lang.Cloneable and java.io.Serializable.
|
||||||
return true;
|
// 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()) {
|
} else if (from.is_object()) {
|
||||||
Klass* from_class = SystemDictionary::resolve_or_fail(
|
Klass* from_class = SystemDictionary::resolve_or_fail(
|
||||||
from.name(), Handle(THREAD, klass->class_loader()),
|
from.name(), Handle(THREAD, klass->class_loader()),
|
||||||
|
@ -1579,9 +1579,11 @@ void ClassVerifier::verify_method(methodHandle m, TRAPS) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Make sure "this" has been initialized if current method is an
|
// 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() &&
|
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),
|
verify_error(ErrorContext::bad_code(bci),
|
||||||
"Constructor must call super() or this() "
|
"Constructor must call super() or this() "
|
||||||
"before return");
|
"before return");
|
||||||
|
@ -73,13 +73,6 @@
|
|||||||
|
|
||||||
size_t G1CollectedHeap::_humongous_object_threshold_in_words = 0;
|
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
|
// INVARIANTS/NOTES
|
||||||
//
|
//
|
||||||
// All allocation activity covered by the G1CollectedHeap interface is
|
// All allocation activity covered by the G1CollectedHeap interface is
|
||||||
@ -4079,29 +4072,12 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) {
|
|||||||
// the possible verification above.
|
// the possible verification above.
|
||||||
double sample_start_time_sec = os::elapsedTime();
|
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);
|
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()) {
|
if (collector_state()->during_initial_mark_pause()) {
|
||||||
concurrent_mark()->checkpointRootsInitialPre();
|
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);
|
double time_remaining_ms = g1_policy()->finalize_young_cset_part(target_pause_time_ms);
|
||||||
g1_policy()->finalize_old_cset_part(time_remaining_ms);
|
g1_policy()->finalize_old_cset_part(time_remaining_ms);
|
||||||
|
|
||||||
@ -4157,11 +4133,6 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) {
|
|||||||
assert(check_young_list_empty(false /* check_heap */),
|
assert(check_young_list_empty(false /* check_heap */),
|
||||||
"young list should be empty");
|
"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(),
|
g1_policy()->record_survivor_regions(_young_list->survivor_length(),
|
||||||
_young_list->first_survivor_region(),
|
_young_list->first_survivor_region(),
|
||||||
_young_list->last_survivor_region());
|
_young_list->last_survivor_region());
|
||||||
@ -4197,12 +4168,6 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) {
|
|||||||
|
|
||||||
allocate_dummy_regions();
|
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();
|
_allocator->init_mutator_alloc_region();
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -93,7 +93,7 @@ void G1EvacStats::adjust_desired_plab_sz() {
|
|||||||
size_t const used_for_waste_calculation = used() > _region_end_waste ? used() - _region_end_waste : 0;
|
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 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
|
// Take historical weighted average
|
||||||
_filter.sample(cur_plab_sz);
|
_filter.sample(cur_plab_sz);
|
||||||
// Clip from above and below, and align to object boundary
|
// Clip from above and below, and align to object boundary
|
||||||
|
@ -88,8 +88,6 @@ void GCTracer::report_gc_reference_stats(const ReferenceProcessorStats& rps) con
|
|||||||
send_reference_stats_event(REF_WEAK, rps.weak_count());
|
send_reference_stats_event(REF_WEAK, rps.weak_count());
|
||||||
send_reference_stats_event(REF_FINAL, rps.final_count());
|
send_reference_stats_event(REF_FINAL, rps.final_count());
|
||||||
send_reference_stats_event(REF_PHANTOM, rps.phantom_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
|
#if INCLUDE_SERVICES
|
||||||
|
@ -243,13 +243,10 @@ ReferenceProcessorStats ReferenceProcessor::process_discovered_references(
|
|||||||
process_discovered_reflist(_discoveredPhantomRefs, NULL, false,
|
process_discovered_reflist(_discoveredPhantomRefs, NULL, false,
|
||||||
is_alive, keep_alive, complete_gc, task_executor);
|
is_alive, keep_alive, complete_gc, task_executor);
|
||||||
|
|
||||||
}
|
// Process cleaners, but include them in phantom statistics. We expect
|
||||||
|
// Cleaner references to be temporary, and don't want to deal with
|
||||||
// Cleaners
|
// possible incompatibilities arising from making it more visible.
|
||||||
size_t cleaner_count = 0;
|
phantom_count +=
|
||||||
{
|
|
||||||
GCTraceTime tt("Cleaners", trace_time, false, gc_timer, gc_id);
|
|
||||||
cleaner_count =
|
|
||||||
process_discovered_reflist(_discoveredCleanerRefs, NULL, true,
|
process_discovered_reflist(_discoveredCleanerRefs, NULL, true,
|
||||||
is_alive, keep_alive, complete_gc, task_executor);
|
is_alive, keep_alive, complete_gc, task_executor);
|
||||||
}
|
}
|
||||||
@ -259,17 +256,15 @@ ReferenceProcessorStats ReferenceProcessor::process_discovered_references(
|
|||||||
// that is not how the JDK1.2 specification is. See #4126360. Native code can
|
// 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
|
// thus use JNI weak references to circumvent the phantom references and
|
||||||
// resurrect a "post-mortem" object.
|
// resurrect a "post-mortem" object.
|
||||||
size_t jni_weak_ref_count = 0;
|
|
||||||
{
|
{
|
||||||
GCTraceTime tt("JNI Weak Reference", trace_time, false, gc_timer, gc_id);
|
GCTraceTime tt("JNI Weak Reference", trace_time, false, gc_timer, gc_id);
|
||||||
if (task_executor != NULL) {
|
if (task_executor != NULL) {
|
||||||
task_executor->set_single_threaded_mode();
|
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
|
#ifndef PRODUCT
|
||||||
@ -296,17 +291,17 @@ uint ReferenceProcessor::count_jni_refs() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
size_t ReferenceProcessor::process_phaseJNI(BoolObjectClosure* is_alive,
|
void ReferenceProcessor::process_phaseJNI(BoolObjectClosure* is_alive,
|
||||||
OopClosure* keep_alive,
|
OopClosure* keep_alive,
|
||||||
VoidClosure* complete_gc) {
|
VoidClosure* complete_gc) {
|
||||||
DEBUG_ONLY(size_t check_count = count_jni_refs();)
|
#ifndef PRODUCT
|
||||||
size_t count = JNIHandles::weak_oops_do(is_alive, keep_alive);
|
|
||||||
assert(count == check_count, "Counts didn't match");
|
|
||||||
complete_gc->do_void();
|
|
||||||
if (PrintGCDetails && PrintReferenceGC) {
|
if (PrintGCDetails && PrintReferenceGC) {
|
||||||
gclog_or_tty->print(", " SIZE_FORMAT " refs", count);
|
unsigned int count = count_jni_refs();
|
||||||
|
gclog_or_tty->print(", %u refs", count);
|
||||||
}
|
}
|
||||||
return count;
|
#endif
|
||||||
|
JNIHandles::weak_oops_do(is_alive, keep_alive);
|
||||||
|
complete_gc->do_void();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -946,10 +941,9 @@ inline DiscoveredList* ReferenceProcessor::get_discovered_list(ReferenceType rt)
|
|||||||
list = &_discoveredCleanerRefs[id];
|
list = &_discoveredCleanerRefs[id];
|
||||||
break;
|
break;
|
||||||
case REF_NONE:
|
case REF_NONE:
|
||||||
case REF_JNI:
|
|
||||||
// we should not reach here if we are an InstanceRefKlass
|
// we should not reach here if we are an InstanceRefKlass
|
||||||
default:
|
default:
|
||||||
guarantee(false, err_msg("rt should not be %d", rt));
|
ShouldNotReachHere();
|
||||||
}
|
}
|
||||||
if (TraceReferenceGC && PrintGCDetails) {
|
if (TraceReferenceGC && PrintGCDetails) {
|
||||||
gclog_or_tty->print_cr("Thread %d gets list " INTPTR_FORMAT, id, p2i(list));
|
gclog_or_tty->print_cr("Thread %d gets list " INTPTR_FORMAT, id, p2i(list));
|
||||||
|
@ -247,7 +247,7 @@ class ReferenceProcessor : public CHeapObj<mtGC> {
|
|||||||
DiscoveredList* _discoveredCleanerRefs;
|
DiscoveredList* _discoveredCleanerRefs;
|
||||||
|
|
||||||
public:
|
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 num_q() { return _num_q; }
|
||||||
uint max_num_q() { return _max_num_q; }
|
uint max_num_q() { return _max_num_q; }
|
||||||
@ -271,9 +271,9 @@ class ReferenceProcessor : public CHeapObj<mtGC> {
|
|||||||
VoidClosure* complete_gc,
|
VoidClosure* complete_gc,
|
||||||
AbstractRefProcTaskExecutor* task_executor);
|
AbstractRefProcTaskExecutor* task_executor);
|
||||||
|
|
||||||
size_t process_phaseJNI(BoolObjectClosure* is_alive,
|
void process_phaseJNI(BoolObjectClosure* is_alive,
|
||||||
OopClosure* keep_alive,
|
OopClosure* keep_alive,
|
||||||
VoidClosure* complete_gc);
|
VoidClosure* complete_gc);
|
||||||
|
|
||||||
// Work methods used by the method process_discovered_reflist
|
// Work methods used by the method process_discovered_reflist
|
||||||
// Phase1: keep alive all those referents that are otherwise
|
// Phase1: keep alive all those referents that are otherwise
|
||||||
|
@ -36,30 +36,22 @@ class ReferenceProcessorStats {
|
|||||||
size_t _weak_count;
|
size_t _weak_count;
|
||||||
size_t _final_count;
|
size_t _final_count;
|
||||||
size_t _phantom_count;
|
size_t _phantom_count;
|
||||||
size_t _cleaner_count;
|
|
||||||
size_t _jni_weak_ref_count;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ReferenceProcessorStats() :
|
ReferenceProcessorStats() :
|
||||||
_soft_count(0),
|
_soft_count(0),
|
||||||
_weak_count(0),
|
_weak_count(0),
|
||||||
_final_count(0),
|
_final_count(0),
|
||||||
_phantom_count(0),
|
_phantom_count(0) {}
|
||||||
_cleaner_count(0),
|
|
||||||
_jni_weak_ref_count(0) {}
|
|
||||||
|
|
||||||
ReferenceProcessorStats(size_t soft_count,
|
ReferenceProcessorStats(size_t soft_count,
|
||||||
size_t weak_count,
|
size_t weak_count,
|
||||||
size_t final_count,
|
size_t final_count,
|
||||||
size_t phantom_count,
|
size_t phantom_count) :
|
||||||
size_t cleaner_count,
|
|
||||||
size_t jni_weak_ref_count) :
|
|
||||||
_soft_count(soft_count),
|
_soft_count(soft_count),
|
||||||
_weak_count(weak_count),
|
_weak_count(weak_count),
|
||||||
_final_count(final_count),
|
_final_count(final_count),
|
||||||
_phantom_count(phantom_count),
|
_phantom_count(phantom_count)
|
||||||
_cleaner_count(cleaner_count),
|
|
||||||
_jni_weak_ref_count(jni_weak_ref_count)
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
size_t soft_count() const {
|
size_t soft_count() const {
|
||||||
@ -77,13 +69,5 @@ class ReferenceProcessorStats {
|
|||||||
size_t phantom_count() const {
|
size_t phantom_count() const {
|
||||||
return _phantom_count;
|
return _phantom_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t cleaner_count() const {
|
|
||||||
return _cleaner_count;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t jni_weak_ref_count() const {
|
|
||||||
return _jni_weak_ref_count;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -32,15 +32,11 @@
|
|||||||
enum ReferenceType {
|
enum ReferenceType {
|
||||||
REF_NONE, // Regular class
|
REF_NONE, // Regular class
|
||||||
REF_OTHER, // Subclass of java/lang/ref/Reference, but not subclass of one of the classes below
|
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_SOFT, // Subclass of java/lang/ref/SoftReference
|
||||||
REF_WEAK, // Subclass of java/lang/ref/WeakReference
|
REF_WEAK, // Subclass of java/lang/ref/WeakReference
|
||||||
REF_FINAL, // Subclass of java/lang/ref/FinalReference
|
REF_FINAL, // Subclass of java/lang/ref/FinalReference
|
||||||
REF_PHANTOM, // Subclass of java/lang/ref/PhantomReference
|
REF_PHANTOM, // Subclass of java/lang/ref/PhantomReference
|
||||||
REF_CLEANER, // Subclass of sun/misc/Cleaner
|
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
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SHARE_VM_MEMORY_REFERENCETYPE_HPP
|
#endif // SHARE_VM_MEMORY_REFERENCETYPE_HPP
|
||||||
|
@ -72,7 +72,7 @@ class Method : public Metadata {
|
|||||||
int _result_index; // C++ interpreter needs for converting results to/from stack
|
int _result_index; // C++ interpreter needs for converting results to/from stack
|
||||||
#endif
|
#endif
|
||||||
u2 _method_size; // size of this object
|
u2 _method_size; // size of this object
|
||||||
u1 _intrinsic_id; // vmSymbols::intrinsic_id (0 == _none)
|
u2 _intrinsic_id; // vmSymbols::intrinsic_id (0 == _none)
|
||||||
|
|
||||||
// Flags
|
// Flags
|
||||||
enum Flags {
|
enum Flags {
|
||||||
@ -653,7 +653,7 @@ class Method : public Metadata {
|
|||||||
// for code generation
|
// for code generation
|
||||||
static int method_data_offset_in_bytes() { return offset_of(Method, _method_data); }
|
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_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
|
// Static methods that are used to implement member methods where an exposed this pointer
|
||||||
// is needed due to possible GCs
|
// is needed due to possible GCs
|
||||||
@ -777,7 +777,7 @@ class Method : public Metadata {
|
|||||||
|
|
||||||
// Support for inlining of intrinsic methods
|
// Support for inlining of intrinsic methods
|
||||||
vmIntrinsics::ID intrinsic_id() const { return (vmIntrinsics::ID) _intrinsic_id; }
|
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().
|
// Helper routines for intrinsic_id() and vmIntrinsics::method().
|
||||||
void init_intrinsic_id(); // updates from _none if a match
|
void init_intrinsic_id(); // updates from _none if a match
|
||||||
|
@ -2181,8 +2181,8 @@ void JvmtiExport::oops_do(OopClosure* f) {
|
|||||||
JvmtiVMObjectAllocEventCollector::oops_do_for_all_threads(f);
|
JvmtiVMObjectAllocEventCollector::oops_do_for_all_threads(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t JvmtiExport::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) {
|
void JvmtiExport::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) {
|
||||||
return JvmtiTagMap::weak_oops_do(is_alive, f);
|
JvmtiTagMap::weak_oops_do(is_alive, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JvmtiExport::gc_epilogue() {
|
void JvmtiExport::gc_epilogue() {
|
||||||
|
@ -366,7 +366,7 @@ class JvmtiExport : public AllStatic {
|
|||||||
static void clear_detected_exception (JavaThread* thread) NOT_JVMTI_RETURN;
|
static void clear_detected_exception (JavaThread* thread) NOT_JVMTI_RETURN;
|
||||||
|
|
||||||
static void oops_do(OopClosure* f) 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 gc_epilogue() NOT_JVMTI_RETURN;
|
||||||
|
|
||||||
static void transition_pending_onload_raw_monitors() NOT_JVMTI_RETURN;
|
static void transition_pending_onload_raw_monitors() NOT_JVMTI_RETURN;
|
||||||
|
@ -3284,35 +3284,32 @@ void JvmtiTagMap::follow_references(jint heap_filter,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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
|
// No locks during VM bring-up (0 threads) and no safepoints after main
|
||||||
// thread creation and before VMThread creation (1 thread); initial GC
|
// thread creation and before VMThread creation (1 thread); initial GC
|
||||||
// verification can happen in that window which gets to here.
|
// verification can happen in that window which gets to here.
|
||||||
assert(Threads::number_of_threads() <= 1 ||
|
assert(Threads::number_of_threads() <= 1 ||
|
||||||
SafepointSynchronize::is_at_safepoint(),
|
SafepointSynchronize::is_at_safepoint(),
|
||||||
"must be executed at a safepoint");
|
"must be executed at a safepoint");
|
||||||
size_t count = 0;
|
|
||||||
if (JvmtiEnv::environments_might_exist()) {
|
if (JvmtiEnv::environments_might_exist()) {
|
||||||
JvmtiEnvIterator it;
|
JvmtiEnvIterator it;
|
||||||
for (JvmtiEnvBase* env = it.first(); env != NULL; env = it.next(env)) {
|
for (JvmtiEnvBase* env = it.first(); env != NULL; env = it.next(env)) {
|
||||||
JvmtiTagMap* tag_map = env->tag_map();
|
JvmtiTagMap* tag_map = env->tag_map();
|
||||||
if (tag_map != NULL && !tag_map->is_empty()) {
|
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
|
// does this environment have the OBJECT_FREE event enabled
|
||||||
bool post_object_free = env()->is_enabled(JVMTI_EVENT_OBJECT_FREE);
|
bool post_object_free = env()->is_enabled(JVMTI_EVENT_OBJECT_FREE);
|
||||||
|
|
||||||
// counters used for trace message
|
// counters used for trace message
|
||||||
size_t freed = 0;
|
int freed = 0;
|
||||||
size_t moved = 0;
|
int moved = 0;
|
||||||
size_t stayed = 0;
|
|
||||||
|
|
||||||
JvmtiTagHashmap* hashmap = this->hashmap();
|
JvmtiTagHashmap* hashmap = this->hashmap();
|
||||||
|
|
||||||
@ -3321,7 +3318,7 @@ size_t JvmtiTagMap::do_weak_oops(BoolObjectClosure* is_alive, OopClosure* f) {
|
|||||||
|
|
||||||
// if the hashmap is empty then we can skip it
|
// if the hashmap is empty then we can skip it
|
||||||
if (hashmap->_entry_count == 0) {
|
if (hashmap->_entry_count == 0) {
|
||||||
return 0;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// now iterate through each entry in the table
|
// now iterate through each entry in the table
|
||||||
@ -3383,7 +3380,6 @@ size_t JvmtiTagMap::do_weak_oops(BoolObjectClosure* is_alive, OopClosure* f) {
|
|||||||
} else {
|
} else {
|
||||||
// object didn't move
|
// object didn't move
|
||||||
prev = entry;
|
prev = entry;
|
||||||
stayed++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3402,12 +3398,10 @@ size_t JvmtiTagMap::do_weak_oops(BoolObjectClosure* is_alive, OopClosure* f) {
|
|||||||
|
|
||||||
// stats
|
// stats
|
||||||
if (TraceJVMTIObjectTagging) {
|
if (TraceJVMTIObjectTagging) {
|
||||||
size_t post_total = hashmap->_entry_count;
|
int post_total = hashmap->_entry_count;
|
||||||
size_t pre_total = post_total + freed;
|
int pre_total = post_total + freed;
|
||||||
|
|
||||||
tty->print_cr("(" SIZE_FORMAT "->" SIZE_FORMAT ", " SIZE_FORMAT " freed, " SIZE_FORMAT " stayed, " SIZE_FORMAT " moved)",
|
tty->print_cr("(%d->%d, %d freed, %d total moves)",
|
||||||
pre_total, post_total, freed, stayed, moved);
|
pre_total, post_total, freed, moved);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (freed + stayed + moved);
|
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,7 @@ class JvmtiTagMap : public CHeapObj<mtInternal> {
|
|||||||
inline Mutex* lock() { return &_lock; }
|
inline Mutex* lock() { return &_lock; }
|
||||||
inline JvmtiEnv* env() const { return _env; }
|
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
|
// iterate over all entries in this tag map
|
||||||
void entry_iterate(JvmtiTagHashmapEntryClosure* closure);
|
void entry_iterate(JvmtiTagHashmapEntryClosure* closure);
|
||||||
@ -122,8 +122,8 @@ class JvmtiTagMap : public CHeapObj<mtInternal> {
|
|||||||
jint* count_ptr, jobject** object_result_ptr,
|
jint* count_ptr, jobject** object_result_ptr,
|
||||||
jlong** tag_result_ptr);
|
jlong** tag_result_ptr);
|
||||||
|
|
||||||
static size_t weak_oops_do(BoolObjectClosure* is_alive,
|
static void weak_oops_do(
|
||||||
OopClosure* f) NOT_JVMTI_RETURN_(0);
|
BoolObjectClosure* is_alive, OopClosure* f) NOT_JVMTI_RETURN;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SHARE_VM_PRIMS_JVMTITAGMAP_HPP
|
#endif // SHARE_VM_PRIMS_JVMTITAGMAP_HPP
|
||||||
|
@ -118,7 +118,7 @@ char* Arguments::_ext_dirs = NULL;
|
|||||||
// part of the option string.
|
// part of the option string.
|
||||||
static bool match_option(const JavaVMOption *option, const char* name,
|
static bool match_option(const JavaVMOption *option, const char* name,
|
||||||
const char** tail) {
|
const char** tail) {
|
||||||
int len = (int)strlen(name);
|
size_t len = strlen(name);
|
||||||
if (strncmp(option->optionString, name, len) == 0) {
|
if (strncmp(option->optionString, name, len) == 0) {
|
||||||
*tail = option->optionString + len;
|
*tail = option->optionString + len;
|
||||||
return true;
|
return true;
|
||||||
@ -219,11 +219,9 @@ void Arguments::init_system_properties() {
|
|||||||
void Arguments::init_version_specific_system_properties() {
|
void Arguments::init_version_specific_system_properties() {
|
||||||
enum { bufsz = 16 };
|
enum { bufsz = 16 };
|
||||||
char buffer[bufsz];
|
char buffer[bufsz];
|
||||||
const char* spec_vendor = "Sun Microsystems Inc.";
|
const char* spec_vendor = "Oracle Corporation";
|
||||||
uint32_t spec_version = 0;
|
uint32_t spec_version = JDK_Version::current().major_version();
|
||||||
|
|
||||||
spec_vendor = "Oracle Corporation";
|
|
||||||
spec_version = JDK_Version::current().major_version();
|
|
||||||
jio_snprintf(buffer, bufsz, "1." UINT32_FORMAT, spec_version);
|
jio_snprintf(buffer, bufsz, "1." UINT32_FORMAT, spec_version);
|
||||||
|
|
||||||
PropertyList_add(&_system_properties,
|
PropertyList_add(&_system_properties,
|
||||||
@ -234,75 +232,290 @@ void Arguments::init_version_specific_system_properties() {
|
|||||||
new SystemProperty("java.vm.vendor", VM_Version::vm_vendor(), false));
|
new SystemProperty("java.vm.vendor", VM_Version::vm_vendor(), false));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Provide a slightly more user-friendly way of eliminating -XX flags.
|
* -XX argument processing:
|
||||||
* 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
|
* -XX arguments are defined in several places, such as:
|
||||||
* and ignoring the value. Once the JDK version reaches the 'accept_until'
|
* globals.hpp, globals_<cpu>.hpp, globals_<os>.hpp, <compiler>_globals.hpp, or <gc>_globals.hpp.
|
||||||
* limit, we flatly refuse to admit the existence of the flag. This allows
|
* -XX arguments are parsed in parse_argument().
|
||||||
* a flag to die correctly over JDK releases using HSX.
|
* -XX argument bounds checking is done in check_vm_args_consistency().
|
||||||
* 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
|
* Over time -XX arguments may change. There are mechanisms to handle common cases:
|
||||||
* on each major release.
|
*
|
||||||
|
* 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 {
|
typedef struct {
|
||||||
const char* name;
|
const char* name;
|
||||||
JDK_Version obsoleted_in; // when the flag went away
|
JDK_Version deprecated_in; // When the deprecation warning started (or "undefined").
|
||||||
JDK_Version accept_until; // which version to start denying the existence
|
JDK_Version obsolete_in; // When the obsolete warning started (or "undefined").
|
||||||
} ObsoleteFlag;
|
JDK_Version expired_in; // When the option expires (or "undefined").
|
||||||
|
} SpecialFlag;
|
||||||
|
|
||||||
static ObsoleteFlag obsolete_jvm_flags[] = {
|
// The special_jvm_flags table declares options that are being deprecated and/or obsoleted. The
|
||||||
{ "UseOldInlining", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
// "deprecated_in" or "obsolete_in" fields may be set to "undefined", but not both.
|
||||||
{ "SafepointPollOffset", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
// When the JDK version reaches 'deprecated_in' limit, the JVM will process this flag on
|
||||||
{ "UseBoundThreads", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
// the command-line as usual, but will issue a warning.
|
||||||
{ "DefaultThreadPriority", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
// When the JDK version reaches 'obsolete_in' limit, the JVM will continue accepting this flag on
|
||||||
{ "NoYieldsInMicrolock", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
// the command-line, while issuing a warning and ignoring the flag value.
|
||||||
{ "BackEdgeThreshold", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
// Once the JDK version reaches 'expired_in' limit, the JVM will flatly refuse to admit the
|
||||||
{ "UseNewReflection", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
// existence of the flag.
|
||||||
{ "ReflectionWrapResolutionErrors",JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
//
|
||||||
{ "VerifyReflectionBytecodes", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
// MANUAL CLEANUP ON JDK VERSION UPDATES:
|
||||||
{ "AutoShutdownNMT", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
// This table ensures that the handling of options will update automatically when the JDK
|
||||||
{ "NmethodSweepFraction", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
// version is incremented, but the source code needs to be cleanup up manually:
|
||||||
{ "NmethodSweepCheckInterval", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
// - As "deprecated" options age into "obsolete" or "expired" options, the associated "globals"
|
||||||
{ "CodeCacheMinimumFreeSpace", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
// 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
|
#ifndef ZERO
|
||||||
{ "UseFastAccessorMethods", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
{ "UseFastAccessorMethods", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
||||||
{ "UseFastEmptyMethods", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
{ "UseFastEmptyMethods", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
||||||
#endif // ZERO
|
#endif // ZERO
|
||||||
{ "UseCompilerSafepoints", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
{ "UseCompilerSafepoints", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
||||||
{ "AdaptiveSizePausePolicy", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
{ "AdaptiveSizePausePolicy", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
||||||
{ "ParallelGCRetainPLAB", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
{ "ParallelGCRetainPLAB", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
||||||
{ "ThreadSafetyMargin", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
{ "ThreadSafetyMargin", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
||||||
{ "LazyBootClassLoader", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
{ "LazyBootClassLoader", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
||||||
{ "StarvationMonitorInterval", JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
{ "StarvationMonitorInterval", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
|
||||||
{ "PreInflateSpin", 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) }
|
{ NULL, JDK_Version(0), JDK_Version(0) }
|
||||||
};
|
};
|
||||||
|
|
||||||
// Returns true if the flag is obsolete and fits into the range specified
|
// Flags that are aliases for other flags.
|
||||||
// for being ignored. In the case that the flag is ignored, the 'version'
|
typedef struct {
|
||||||
// value is filled in with the version number when the flag became
|
const char* alias_name;
|
||||||
// obsolete so that that value can be displayed to the user.
|
const char* real_name;
|
||||||
bool Arguments::is_newly_obsolete(const char *s, JDK_Version* version) {
|
} AliasedFlag;
|
||||||
int i = 0;
|
|
||||||
assert(version != NULL, "Must provide a version buffer");
|
static AliasedFlag const aliased_jvm_flags[] = {
|
||||||
while (obsolete_jvm_flags[i].name != NULL) {
|
{ "DefaultMaxRAMFraction", "MaxRAMFraction" },
|
||||||
const ObsoleteFlag& flag_status = obsolete_jvm_flags[i];
|
{ "CMSMarkStackSizeMax", "MarkStackSizeMax" },
|
||||||
// <flag>=xxx form
|
{ "CMSMarkStackSize", "MarkStackSize" },
|
||||||
// [-|+]<flag> form
|
{ "G1MarkStackSize", "MarkStackSize" },
|
||||||
size_t len = strlen(flag_status.name);
|
{ "ParallelMarkingThreads", "ConcGCThreads" },
|
||||||
if ((strncmp(flag_status.name, s, len) == 0) &&
|
{ "ParallelCMSThreads", "ConcGCThreads" },
|
||||||
(strlen(s) == len)){
|
{ "CreateMinidumpOnCrash", "CreateCoredumpOnCrash" },
|
||||||
if (JDK_Version::current().compare(flag_status.accept_until) == -1) {
|
{ NULL, NULL}
|
||||||
*version = flag_status.obsoleted_in;
|
};
|
||||||
return true;
|
|
||||||
}
|
// 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;
|
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
|
// Constructs the system class path (aka boot class path) from the following
|
||||||
// components, in order:
|
// components, in order:
|
||||||
//
|
//
|
||||||
@ -571,7 +784,7 @@ void Arguments::describe_range_error(ArgsRange errcode) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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) {
|
if (CommandLineFlags::boolAtPut(name, &value, origin) == Flag::SUCCESS) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@ -579,7 +792,7 @@ static bool set_bool_flag(char* name, bool value, Flag::Flags origin) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
double v;
|
||||||
if (sscanf(value, "%lf", &v) != 1) {
|
if (sscanf(value, "%lf", &v) != 1) {
|
||||||
return false;
|
return false;
|
||||||
@ -591,7 +804,7 @@ static bool set_fp_numeric_flag(char* name, char* value, Flag::Flags origin) {
|
|||||||
return false;
|
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;
|
julong v;
|
||||||
int int_v;
|
int int_v;
|
||||||
intx intx_v;
|
intx intx_v;
|
||||||
@ -640,14 +853,14 @@ static bool set_numeric_flag(char* name, char* value, Flag::Flags origin) {
|
|||||||
return false;
|
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;
|
if (CommandLineFlags::ccstrAtPut(name, &value, origin) != Flag::SUCCESS) return false;
|
||||||
// Contract: CommandLineFlags always returns a pointer that needs freeing.
|
// Contract: CommandLineFlags always returns a pointer that needs freeing.
|
||||||
FREE_C_HEAP_ARRAY(char, value);
|
FREE_C_HEAP_ARRAY(char, value);
|
||||||
return true;
|
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 = "";
|
const char* old_value = "";
|
||||||
if (CommandLineFlags::ccstrAt(name, &old_value) != Flag::SUCCESS) return false;
|
if (CommandLineFlags::ccstrAt(name, &old_value) != Flag::SUCCESS) return false;
|
||||||
size_t old_len = old_value != NULL ? strlen(old_value) : 0;
|
size_t old_len = old_value != NULL ? strlen(old_value) : 0;
|
||||||
@ -675,6 +888,33 @@ static bool append_to_string_flag(char* name, const char* new_value, Flag::Flags
|
|||||||
return true;
|
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) {
|
bool Arguments::parse_argument(const char* arg, Flag::Flags origin) {
|
||||||
|
|
||||||
// range of acceptable characters spelled out for portability reasons
|
// range of acceptable characters spelled out for portability reasons
|
||||||
@ -682,27 +922,46 @@ bool Arguments::parse_argument(const char* arg, Flag::Flags origin) {
|
|||||||
#define BUFLEN 255
|
#define BUFLEN 255
|
||||||
char name[BUFLEN+1];
|
char name[BUFLEN+1];
|
||||||
char dummy;
|
char dummy;
|
||||||
|
const char* real_name;
|
||||||
|
bool warn_if_deprecated = true;
|
||||||
|
|
||||||
if (sscanf(arg, "-%" XSTR(BUFLEN) NAME_RANGE "%c", name, &dummy) == 1) {
|
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) {
|
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;
|
char punct;
|
||||||
if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "%c", name, &punct) == 2 && punct == '=') {
|
if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "%c", name, &punct) == 2 && punct == '=') {
|
||||||
const char* value = strchr(arg, '=') + 1;
|
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 != NULL && flag->is_ccstr()) {
|
||||||
if (flag->ccstr_accumulates()) {
|
if (flag->ccstr_accumulates()) {
|
||||||
return append_to_string_flag(name, value, origin);
|
return append_to_string_flag(real_name, value, origin);
|
||||||
} else {
|
} else {
|
||||||
if (value[0] == '\0') {
|
if (value[0] == '\0') {
|
||||||
value = NULL;
|
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 @@ bool Arguments::parse_argument(const char* arg, Flag::Flags origin) {
|
|||||||
if (value[0] == '\0') {
|
if (value[0] == '\0') {
|
||||||
value = NULL;
|
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.]"
|
#define SIGNED_FP_NUMBER_RANGE "[-0123456789.]"
|
||||||
@ -723,13 +986,21 @@ bool Arguments::parse_argument(const char* arg, Flag::Flags origin) {
|
|||||||
if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "=" "%" XSTR(BUFLEN) SIGNED_NUMBER_RANGE "." "%" XSTR(BUFLEN) NUMBER_RANGE "%c", name, value, value2, &dummy) == 3) {
|
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
|
// 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) {
|
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]"
|
#define VALUE_RANGE "[-kmgtxKMGTX0123456789abcdefABCDEF]"
|
||||||
if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "=" "%" XSTR(BUFLEN) VALUE_RANGE "%c", name, value, &dummy) == 2) {
|
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;
|
return false;
|
||||||
@ -837,8 +1108,8 @@ void Arguments::print_jvm_args_on(outputStream* st) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Arguments::process_argument(const char* arg,
|
bool Arguments::process_argument(const char* arg,
|
||||||
jboolean ignore_unrecognized, Flag::Flags origin) {
|
jboolean ignore_unrecognized,
|
||||||
|
Flag::Flags origin) {
|
||||||
JDK_Version since = JDK_Version();
|
JDK_Version since = JDK_Version();
|
||||||
|
|
||||||
if (parse_argument(arg, origin) || ignore_unrecognized) {
|
if (parse_argument(arg, origin) || ignore_unrecognized) {
|
||||||
@ -864,10 +1135,10 @@ bool Arguments::process_argument(const char* arg,
|
|||||||
strncpy(stripped_argname, argname, arg_len);
|
strncpy(stripped_argname, argname, arg_len);
|
||||||
stripped_argname[arg_len] = '\0'; // strncpy may not null terminate.
|
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];
|
char version[256];
|
||||||
since.to_string(version, sizeof(version));
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1235,7 +1506,7 @@ void Arguments::set_tiered_flags() {
|
|||||||
static void disable_adaptive_size_policy(const char* collector_name) {
|
static void disable_adaptive_size_policy(const char* collector_name) {
|
||||||
if (UseAdaptiveSizePolicy) {
|
if (UseAdaptiveSizePolicy) {
|
||||||
if (FLAG_IS_CMDLINE(UseAdaptiveSizePolicy)) {
|
if (FLAG_IS_CMDLINE(UseAdaptiveSizePolicy)) {
|
||||||
warning("disabling UseAdaptiveSizePolicy; it is incompatible with %s.",
|
warning("Disabling UseAdaptiveSizePolicy; it is incompatible with %s.",
|
||||||
collector_name);
|
collector_name);
|
||||||
}
|
}
|
||||||
FLAG_SET_DEFAULT(UseAdaptiveSizePolicy, false);
|
FLAG_SET_DEFAULT(UseAdaptiveSizePolicy, false);
|
||||||
@ -1707,7 +1978,6 @@ void Arguments::set_gc_specific_flags() {
|
|||||||
} else if (UseG1GC) {
|
} else if (UseG1GC) {
|
||||||
set_g1_gc_flags();
|
set_g1_gc_flags();
|
||||||
}
|
}
|
||||||
check_deprecated_gc_flags();
|
|
||||||
if (AssumeMP && !UseSerialGC) {
|
if (AssumeMP && !UseSerialGC) {
|
||||||
if (FLAG_IS_DEFAULT(ParallelGCThreads) && ParallelGCThreads == 1) {
|
if (FLAG_IS_DEFAULT(ParallelGCThreads) && ParallelGCThreads == 1) {
|
||||||
warning("If the number of processors is expected to increase from one, then"
|
warning("If the number of processors is expected to increase from one, then"
|
||||||
@ -1737,11 +2007,6 @@ julong Arguments::limit_by_allocatable_memory(julong limit) {
|
|||||||
static const size_t DefaultHeapBaseMinAddress = HeapBaseMinAddress;
|
static const size_t DefaultHeapBaseMinAddress = HeapBaseMinAddress;
|
||||||
|
|
||||||
void Arguments::set_heap_size() {
|
void Arguments::set_heap_size() {
|
||||||
if (!FLAG_IS_DEFAULT(DefaultMaxRAMFraction)) {
|
|
||||||
// Deprecated flag
|
|
||||||
FLAG_SET_CMDLINE(uintx, MaxRAMFraction, DefaultMaxRAMFraction);
|
|
||||||
}
|
|
||||||
|
|
||||||
const julong phys_mem =
|
const julong phys_mem =
|
||||||
FLAG_IS_DEFAULT(MaxRAM) ? MIN2(os::physical_memory(), (julong)MaxRAM)
|
FLAG_IS_DEFAULT(MaxRAM) ? MIN2(os::physical_memory(), (julong)MaxRAM)
|
||||||
: (julong)MaxRAM;
|
: (julong)MaxRAM;
|
||||||
@ -1844,6 +2109,122 @@ void Arguments::set_heap_size() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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.
|
// This must be called after ergonomics.
|
||||||
void Arguments::set_bytecode_flags() {
|
void Arguments::set_bytecode_flags() {
|
||||||
if (!RewriteBytecodes) {
|
if (!RewriteBytecodes) {
|
||||||
@ -2027,20 +2408,6 @@ bool Arguments::check_gc_consistency() {
|
|||||||
return true;
|
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
|
// Check the consistency of vm_init_args
|
||||||
bool Arguments::check_vm_args_consistency() {
|
bool Arguments::check_vm_args_consistency() {
|
||||||
// Method for adding checks for flag consistency.
|
// Method for adding checks for flag consistency.
|
||||||
@ -2576,7 +2943,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
|
|||||||
// All these options are deprecated in JDK 9 and will be removed in a future release
|
// All these options are deprecated in JDK 9 and will be removed in a future release
|
||||||
char version[256];
|
char version[256];
|
||||||
JDK_Version::jdk(9).to_string(version, sizeof(version));
|
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)) {
|
} else if (match_option(option, "-XX:CodeCacheExpansionSize=", &tail)) {
|
||||||
julong long_CodeCacheExpansionSize = 0;
|
julong long_CodeCacheExpansionSize = 0;
|
||||||
ArgsRange errcode = parse_memory_size(tail, &long_CodeCacheExpansionSize, os::vm_page_size());
|
ArgsRange errcode = parse_memory_size(tail, &long_CodeCacheExpansionSize, os::vm_page_size());
|
||||||
@ -2843,120 +3210,10 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
|
|||||||
_abort_hook = CAST_TO_FN_PTR(abort_hook_t, option->extraInfo);
|
_abort_hook = CAST_TO_FN_PTR(abort_hook_t, option->extraInfo);
|
||||||
// -XX:+AggressiveHeap
|
// -XX:+AggressiveHeap
|
||||||
} else if (match_option(option, "-XX:+AggressiveHeap")) {
|
} else if (match_option(option, "-XX:+AggressiveHeap")) {
|
||||||
|
jint result = set_aggressive_heap_flags();
|
||||||
// This option inspects the machine and attempts to set various
|
if (result != JNI_OK) {
|
||||||
// parameters to be optimal for long-running, memory allocation
|
return result;
|
||||||
// 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#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;
|
// Need to keep consistency of MaxTenuringThreshold and AlwaysTenure/NeverTenure;
|
||||||
// and the last option wins.
|
// and the last option wins.
|
||||||
} else if (match_option(option, "-XX:+NeverTenure")) {
|
} else if (match_option(option, "-XX:+NeverTenure")) {
|
||||||
@ -3049,52 +3306,6 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
|
|||||||
return JNI_EINVAL;
|
return JNI_EINVAL;
|
||||||
}
|
}
|
||||||
#endif
|
#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)) {
|
} else if (match_option(option, "-XX:MaxDirectMemorySize=", &tail)) {
|
||||||
julong max_direct_memory_size = 0;
|
julong max_direct_memory_size = 0;
|
||||||
ArgsRange errcode = parse_memory_size(tail, &max_direct_memory_size, 0);
|
ArgsRange errcode = parse_memory_size(tail, &max_direct_memory_size, 0);
|
||||||
@ -3114,19 +3325,6 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
|
|||||||
"ManagementServer is not supported in this VM.\n");
|
"ManagementServer is not supported in this VM.\n");
|
||||||
return JNI_ERR;
|
return JNI_ERR;
|
||||||
#endif // INCLUDE_MANAGEMENT
|
#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
|
} else if (match_option(option, "-XX:", &tail)) { // -XX:xxxx
|
||||||
// Skip -XX:Flags= and -XX:VMOptionsFile= since those cases have
|
// Skip -XX:Flags= and -XX:VMOptionsFile= since those cases have
|
||||||
// already been handled
|
// already been handled
|
||||||
@ -3623,7 +3821,7 @@ jint Arguments::parse_options_buffer(const char* name, char* buffer, const size_
|
|||||||
void Arguments::set_shared_spaces_flags() {
|
void Arguments::set_shared_spaces_flags() {
|
||||||
if (DumpSharedSpaces) {
|
if (DumpSharedSpaces) {
|
||||||
if (RequireSharedSpaces) {
|
if (RequireSharedSpaces) {
|
||||||
warning("cannot dump shared archive while using shared archive");
|
warning("Cannot dump shared archive while using shared archive");
|
||||||
}
|
}
|
||||||
UseSharedSpaces = false;
|
UseSharedSpaces = false;
|
||||||
#ifdef _LP64
|
#ifdef _LP64
|
||||||
@ -3848,6 +4046,7 @@ static void print_options(const JavaVMInitArgs *args) {
|
|||||||
// Parse entry point called from JNI_CreateJavaVM
|
// Parse entry point called from JNI_CreateJavaVM
|
||||||
|
|
||||||
jint Arguments::parse(const JavaVMInitArgs* args) {
|
jint Arguments::parse(const JavaVMInitArgs* args) {
|
||||||
|
assert(verify_special_jvm_flags(), "deprecated and obsolete flag table inconsistent");
|
||||||
|
|
||||||
// Initialize ranges and constraints
|
// Initialize ranges and constraints
|
||||||
CommandLineFlagRangeList::init();
|
CommandLineFlagRangeList::init();
|
||||||
@ -3984,7 +4183,7 @@ jint Arguments::parse(const JavaVMInitArgs* args) {
|
|||||||
|
|
||||||
if (ScavengeRootsInCode == 0) {
|
if (ScavengeRootsInCode == 0) {
|
||||||
if (!FLAG_IS_DEFAULT(ScavengeRootsInCode)) {
|
if (!FLAG_IS_DEFAULT(ScavengeRootsInCode)) {
|
||||||
warning("forcing ScavengeRootsInCode non-zero");
|
warning("Forcing ScavengeRootsInCode non-zero");
|
||||||
}
|
}
|
||||||
ScavengeRootsInCode = 1;
|
ScavengeRootsInCode = 1;
|
||||||
}
|
}
|
||||||
|
@ -364,6 +364,8 @@ class Arguments : AllStatic {
|
|||||||
// Aggressive optimization flags.
|
// Aggressive optimization flags.
|
||||||
static jint set_aggressive_opts_flags();
|
static jint set_aggressive_opts_flags();
|
||||||
|
|
||||||
|
static jint set_aggressive_heap_flags();
|
||||||
|
|
||||||
// Argument parsing
|
// Argument parsing
|
||||||
static void do_pd_flag_adjustments();
|
static void do_pd_flag_adjustments();
|
||||||
static bool parse_argument(const char* arg, Flag::Flags origin);
|
static bool parse_argument(const char* arg, Flag::Flags origin);
|
||||||
@ -427,11 +429,24 @@ class Arguments : AllStatic {
|
|||||||
short* methodsNum, short* methodsMax, char*** methods, bool** allClasses
|
short* methodsNum, short* methodsMax, char*** methods, bool** allClasses
|
||||||
);
|
);
|
||||||
|
|
||||||
// Returns true if the string s is in the list of flags that have recently
|
// Returns true if the flag is obsolete (and not yet expired).
|
||||||
// been made obsolete. If we detect one of these flags on the command
|
// In this case the 'version' buffer is filled in with
|
||||||
// line, instead of failing we print a warning message and ignore the
|
// the version number when the flag became obsolete.
|
||||||
// flag. This gives the user a release or so to stop using the flag.
|
static bool is_obsolete_flag(const char* flag_name, JDK_Version* version);
|
||||||
static bool is_newly_obsolete(const char* s, JDK_Version* buffer);
|
|
||||||
|
// 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 CompileOnlyClassesNum;
|
||||||
static short CompileOnlyClassesMax;
|
static short CompileOnlyClassesMax;
|
||||||
@ -478,7 +493,6 @@ class Arguments : AllStatic {
|
|||||||
|
|
||||||
// Check for consistency in the selection of the garbage collector.
|
// Check for consistency in the selection of the garbage collector.
|
||||||
static bool check_gc_consistency(); // Check user-selected gc
|
static bool check_gc_consistency(); // Check user-selected gc
|
||||||
static void check_deprecated_gc_flags();
|
|
||||||
// Check consistency or otherwise of VM argument settings
|
// Check consistency or otherwise of VM argument settings
|
||||||
static bool check_vm_args_consistency();
|
static bool check_vm_args_consistency();
|
||||||
// Used by os_solaris
|
// Used by os_solaris
|
||||||
|
@ -1599,7 +1599,7 @@ public:
|
|||||||
"(ParallelGC only)") \
|
"(ParallelGC only)") \
|
||||||
\
|
\
|
||||||
product(bool, ScavengeBeforeFullGC, true, \
|
product(bool, ScavengeBeforeFullGC, true, \
|
||||||
"Scavenge young generation before each full GC.") \
|
"Scavenge youngest generation before each full GC.") \
|
||||||
\
|
\
|
||||||
develop(bool, ScavengeWithObjectsInToSpace, false, \
|
develop(bool, ScavengeWithObjectsInToSpace, false, \
|
||||||
"Allow scavenges to occur when to-space contains objects") \
|
"Allow scavenges to occur when to-space contains objects") \
|
||||||
@ -2097,7 +2097,7 @@ public:
|
|||||||
"promotion failure") \
|
"promotion failure") \
|
||||||
\
|
\
|
||||||
notproduct(bool, PromotionFailureALot, false, \
|
notproduct(bool, PromotionFailureALot, false, \
|
||||||
"Use promotion failure handling on every young generation " \
|
"Use promotion failure handling on every youngest generation " \
|
||||||
"collection") \
|
"collection") \
|
||||||
\
|
\
|
||||||
develop(uintx, PromotionFailureALotCount, 1000, \
|
develop(uintx, PromotionFailureALotCount, 1000, \
|
||||||
@ -2183,11 +2183,6 @@ public:
|
|||||||
"size") \
|
"size") \
|
||||||
range(1, max_uintx) \
|
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, \
|
product(uintx, MinRAMFraction, 2, \
|
||||||
"Minimum fraction (1/n) of real memory used for maximum heap " \
|
"Minimum fraction (1/n) of real memory used for maximum heap " \
|
||||||
"size on systems with small physical memory size") \
|
"size on systems with small physical memory size") \
|
||||||
|
@ -137,6 +137,14 @@ class JDK_Version VALUE_OBJ_CLASS_SPEC {
|
|||||||
return JDK_Version(major, 0, 0, update_number);
|
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 major_version() const { return _major; }
|
||||||
uint8_t minor_version() const { return _minor; }
|
uint8_t minor_version() const { return _minor; }
|
||||||
uint8_t micro_version() const { return _micro; }
|
uint8_t micro_version() const { return _micro; }
|
||||||
|
@ -124,8 +124,8 @@ void JNIHandles::oops_do(OopClosure* f) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
size_t JNIHandles::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) {
|
void JNIHandles::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) {
|
||||||
return _weak_global_handles->weak_oops_do(is_alive, f);
|
_weak_global_handles->weak_oops_do(is_alive, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -380,9 +380,8 @@ void JNIHandleBlock::oops_do(OopClosure* f) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
size_t JNIHandleBlock::weak_oops_do(BoolObjectClosure* is_alive,
|
void JNIHandleBlock::weak_oops_do(BoolObjectClosure* is_alive,
|
||||||
OopClosure* f) {
|
OopClosure* f) {
|
||||||
size_t count = 0;
|
|
||||||
for (JNIHandleBlock* current = this; current != NULL; current = current->_next) {
|
for (JNIHandleBlock* current = this; current != NULL; current = current->_next) {
|
||||||
assert(current->pop_frame_link() == NULL,
|
assert(current->pop_frame_link() == NULL,
|
||||||
"blocks holding weak global JNI handles should not have pop frame link set");
|
"blocks holding weak global JNI handles should not have pop frame link set");
|
||||||
@ -391,7 +390,6 @@ size_t JNIHandleBlock::weak_oops_do(BoolObjectClosure* is_alive,
|
|||||||
oop value = *root;
|
oop value = *root;
|
||||||
// traverse heap pointers only, not deleted handles or free list pointers
|
// traverse heap pointers only, not deleted handles or free list pointers
|
||||||
if (value != NULL && Universe::heap()->is_in_reserved(value)) {
|
if (value != NULL && Universe::heap()->is_in_reserved(value)) {
|
||||||
count++;
|
|
||||||
if (is_alive->do_object_b(value)) {
|
if (is_alive->do_object_b(value)) {
|
||||||
// The weakly referenced object is alive, update pointer
|
// The weakly referenced object is alive, update pointer
|
||||||
f->do_oop(root);
|
f->do_oop(root);
|
||||||
@ -414,9 +412,7 @@ size_t JNIHandleBlock::weak_oops_do(BoolObjectClosure* is_alive,
|
|||||||
* JVMTI data structures may also contain weak oops. The iteration of them
|
* 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.
|
* 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);
|
JvmtiExport::weak_oops_do(is_alive, f);
|
||||||
|
|
||||||
return count;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ class JNIHandles : AllStatic {
|
|||||||
// Traversal of regular global handles
|
// Traversal of regular global handles
|
||||||
static void oops_do(OopClosure* f);
|
static void oops_do(OopClosure* f);
|
||||||
// Traversal of weak global handles. Unreachable oops are cleared.
|
// 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 @@ class JNIHandleBlock : public CHeapObj<mtInternal> {
|
|||||||
// Traversal of regular handles
|
// Traversal of regular handles
|
||||||
void oops_do(OopClosure* f);
|
void oops_do(OopClosure* f);
|
||||||
// Traversal of weak handles. Unreachable oops are cleared.
|
// 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
|
// Checked JNI support
|
||||||
void set_planned_capacity(size_t planned_capacity) { _planned_capacity = planned_capacity; }
|
void set_planned_capacity(size_t planned_capacity) { _planned_capacity = planned_capacity; }
|
||||||
|
@ -383,7 +383,7 @@ typedef CompactHashtable<Symbol*, char> SymbolCompactHashTable;
|
|||||||
nonstatic_field(Method, _access_flags, AccessFlags) \
|
nonstatic_field(Method, _access_flags, AccessFlags) \
|
||||||
nonstatic_field(Method, _vtable_index, int) \
|
nonstatic_field(Method, _vtable_index, int) \
|
||||||
nonstatic_field(Method, _method_size, u2) \
|
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) \
|
nonproduct_nonstatic_field(Method, _compiled_invocation_count, int) \
|
||||||
volatile_nonstatic_field(Method, _code, nmethod*) \
|
volatile_nonstatic_field(Method, _code, nmethod*) \
|
||||||
nonstatic_field(Method, _i2i_entry, address) \
|
nonstatic_field(Method, _i2i_entry, address) \
|
||||||
|
@ -190,7 +190,6 @@ needs_full_vm_compact1 = \
|
|||||||
gc/g1/TestShrinkToOneRegion.java \
|
gc/g1/TestShrinkToOneRegion.java \
|
||||||
gc/metaspace/G1AddMetaspaceDependency.java \
|
gc/metaspace/G1AddMetaspaceDependency.java \
|
||||||
gc/startup_warnings/TestCMS.java \
|
gc/startup_warnings/TestCMS.java \
|
||||||
gc/startup_warnings/TestDefaultMaxRAMFraction.java \
|
|
||||||
gc/startup_warnings/TestDefNewCMS.java \
|
gc/startup_warnings/TestDefNewCMS.java \
|
||||||
gc/startup_warnings/TestParallelGC.java \
|
gc/startup_warnings/TestParallelGC.java \
|
||||||
gc/startup_warnings/TestParallelScavengeSerialOld.java \
|
gc/startup_warnings/TestParallelScavengeSerialOld.java \
|
||||||
|
@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -40,7 +40,7 @@ public class TestParNewCMS {
|
|||||||
public static void main(String args[]) throws Exception {
|
public static void main(String args[]) throws Exception {
|
||||||
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseParNewGC", "-XX:+UseConcMarkSweepGC", "-version");
|
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseParNewGC", "-XX:+UseConcMarkSweepGC", "-version");
|
||||||
OutputAnalyzer output = new OutputAnalyzer(pb.start());
|
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.shouldNotContain("error");
|
||||||
output.shouldHaveExitValue(0);
|
output.shouldHaveExitValue(0);
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ public class ObsoleteFlagErrorMessage {
|
|||||||
"-XX:NmethodSweepFraction=10", "-version");
|
"-XX:NmethodSweepFraction=10", "-version");
|
||||||
|
|
||||||
OutputAnalyzer output2 = new OutputAnalyzer(pb2.start());
|
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");
|
output2.shouldContain("NmethodSweepFraction");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
66
hotspot/test/runtime/CommandLine/VMAliasOptions.java
Normal file
66
hotspot/test/runtime/CommandLine/VMAliasOptions.java
Normal file
@ -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);
|
||||||
|
}
|
||||||
|
}
|
80
hotspot/test/runtime/CommandLine/VMDeprecatedOptions.java
Normal file
80
hotspot/test/runtime/CommandLine/VMDeprecatedOptions.java
Normal file
@ -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.
|
||||||
|
}
|
||||||
|
}
|
@ -41,6 +41,6 @@ public class AutoshutdownNMT {
|
|||||||
"-XX:-AutoShutdownNMT",
|
"-XX:-AutoShutdownNMT",
|
||||||
"-version");
|
"-version");
|
||||||
OutputAnalyzer output = new OutputAnalyzer(pb.start());
|
OutputAnalyzer output = new OutputAnalyzer(pb.start());
|
||||||
output.shouldContain("ignoring option AutoShutdownNMT");
|
output.shouldContain("Ignoring option AutoShutdownNMT");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -260,6 +260,73 @@ public abstract class CommandLineOptionTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
|
* Verifies that value of specified JVM when type of newly started VM
|
||||||
* is the same as the type of current.
|
* is the same as the type of current.
|
||||||
@ -311,6 +378,24 @@ public abstract class CommandLineOptionTest {
|
|||||||
return String.format("-XX:%s=%s", name, value.toString());
|
return String.format("-XX:%s=%s", name, value.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
|
* Returns message that should occur in VM output if option
|
||||||
* {@code optionName} if unrecognized.
|
* {@code optionName} if unrecognized.
|
||||||
|
@ -326,3 +326,4 @@ d99c2ffdd0f15753e69126583688f2f075a0a5e8 jdk9-b79
|
|||||||
fdc13a2d32867ca3c57b7fa2620c6b59c83168cb jdk9-b81
|
fdc13a2d32867ca3c57b7fa2620c6b59c83168cb jdk9-b81
|
||||||
b10b64263b563e21f055c881444f625ec618b826 jdk9-b82
|
b10b64263b563e21f055c881444f625ec618b826 jdk9-b82
|
||||||
d11f25ce3c545823f53bb978d454a4d2901abac3 jdk9-b83
|
d11f25ce3c545823f53bb978d454a4d2901abac3 jdk9-b83
|
||||||
|
757ef7f6d0042934edea3e0bf616fad2c1a22789 jdk9-b84
|
||||||
|
@ -40,6 +40,7 @@ allfonts.devanagari=Mangal
|
|||||||
allfonts.dingbats=Wingdings
|
allfonts.dingbats=Wingdings
|
||||||
allfonts.lucida=Lucida Sans Regular
|
allfonts.lucida=Lucida Sans Regular
|
||||||
allfonts.symbol=Symbol
|
allfonts.symbol=Symbol
|
||||||
|
allfonts.symbols=Segoe UI Symbol
|
||||||
allfonts.thai=Lucida Sans Regular
|
allfonts.thai=Lucida Sans Regular
|
||||||
allfonts.georgian=Sylfaen
|
allfonts.georgian=Sylfaen
|
||||||
|
|
||||||
@ -236,7 +237,7 @@ sequence.dialoginput.x-windows-949=alphabetic,korean,dingbats,symbol
|
|||||||
|
|
||||||
sequence.allfonts.x-windows-874=alphabetic,thai,dingbats,symbol
|
sequence.allfonts.x-windows-874=alphabetic,thai,dingbats,symbol
|
||||||
|
|
||||||
sequence.fallback=lucida,\
|
sequence.fallback=lucida,symbols,\
|
||||||
chinese-ms950,chinese-hkscs,chinese-ms936,chinese-gb18030,\
|
chinese-ms950,chinese-hkscs,chinese-ms936,chinese-gb18030,\
|
||||||
japanese,korean,chinese-ms950-extb,chinese-ms936-extb,georgian
|
japanese,korean,chinese-ms950-extb,chinese-ms936-extb,georgian
|
||||||
|
|
||||||
@ -298,3 +299,4 @@ filename.Symbol=SYMBOL.TTF
|
|||||||
filename.Wingdings=WINGDING.TTF
|
filename.Wingdings=WINGDING.TTF
|
||||||
|
|
||||||
filename.Sylfaen=sylfaen.ttf
|
filename.Sylfaen=sylfaen.ttf
|
||||||
|
filename.Segoe_UI_Symbol=SEGUISYM.TTF
|
||||||
|
@ -21,4 +21,4 @@
|
|||||||
# or visit www.oracle.com if you need additional information or have any
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
tzdata2015f
|
tzdata2015g
|
||||||
|
@ -154,7 +154,8 @@ Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2
|
|||||||
# Azerbaijan
|
# Azerbaijan
|
||||||
# From Rustam Aliyev of the Azerbaijan Internet Forum (2005-10-23):
|
# From Rustam Aliyev of the Azerbaijan Internet Forum (2005-10-23):
|
||||||
# According to the resolution of Cabinet of Ministers, 1997
|
# According to the resolution of Cabinet of Ministers, 1997
|
||||||
# Resolution available at: http://aif.az/docs/daylight_res.pdf
|
# From Paul Eggert (2015-09-17): It was Resolution No. 21 (1997-03-17).
|
||||||
|
# http://code.az/files/daylight_res.pdf
|
||||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||||
Rule Azer 1997 max - Mar lastSun 4:00 1:00 S
|
Rule Azer 1997 max - Mar lastSun 4:00 1:00 S
|
||||||
Rule Azer 1997 max - Oct lastSun 5:00 0 -
|
Rule Azer 1997 max - Oct lastSun 5:00 0 -
|
||||||
@ -1740,11 +1741,12 @@ Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S
|
|||||||
# the 8:30 time zone on August 15, one example:
|
# the 8:30 time zone on August 15, one example:
|
||||||
# http://www.bbc.com/news/world-asia-33815049
|
# http://www.bbc.com/news/world-asia-33815049
|
||||||
#
|
#
|
||||||
# From Paul Eggert (2015-08-07):
|
# From Paul Eggert (2015-08-15):
|
||||||
# No transition time is specified; assume 00:00.
|
# Bells rang out midnight (00:00) Friday as part of the celebrations. See:
|
||||||
|
# Talmadge E. North Korea celebrates new time zone, 'Pyongyang Time'
|
||||||
|
# http://news.yahoo.com/north-korea-celebrates-time-zone-pyongyang-time-164038128.html
|
||||||
# There is no common English-language abbreviation for this time zone.
|
# There is no common English-language abbreviation for this time zone.
|
||||||
# Use %z rather than invent one. We can't assume %z works everywhere yet,
|
# Use KST, as that's what we already use for 1954-1961 in ROK.
|
||||||
# so for now substitute its output manually.
|
|
||||||
|
|
||||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||||
Zone Asia/Seoul 8:27:52 - LMT 1908 Apr 1
|
Zone Asia/Seoul 8:27:52 - LMT 1908 Apr 1
|
||||||
@ -1758,7 +1760,7 @@ Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1
|
|||||||
8:30 - KST 1912 Jan 1
|
8:30 - KST 1912 Jan 1
|
||||||
9:00 - JCST 1937 Oct 1
|
9:00 - JCST 1937 Oct 1
|
||||||
9:00 - JST 1945 Aug 24
|
9:00 - JST 1945 Aug 24
|
||||||
9:00 - KST 2015 Aug 15
|
9:00 - KST 2015 Aug 15 00:00
|
||||||
8:30 - KST
|
8:30 - KST
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -358,10 +358,17 @@ Zone Indian/Cocos 6:27:40 - LMT 1900
|
|||||||
# DST will start Nov. 2 this year.
|
# DST will start Nov. 2 this year.
|
||||||
# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVING-STARTS-ON-SUNDAY,-NOVEMBER-2ND.aspx
|
# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVING-STARTS-ON-SUNDAY,-NOVEMBER-2ND.aspx
|
||||||
|
|
||||||
# From Paul Eggert (2014-10-20):
|
# From a government order dated 2015-08-26 and published as Legal Notice No. 77
|
||||||
|
# in the Government of Fiji Gazette Supplement No. 24 (2015-08-28),
|
||||||
|
# via Ken Rylander (2015-09-02):
|
||||||
|
# the daylight saving period is 1 hour in advance of the standard time
|
||||||
|
# commencing at 2.00 am on Sunday 1st November, 2015 and ending at
|
||||||
|
# 3.00 am on Sunday 17th January, 2016.
|
||||||
|
|
||||||
|
# From Paul Eggert (2015-09-01):
|
||||||
# For now, guess DST from 02:00 the first Sunday in November to
|
# For now, guess DST from 02:00 the first Sunday in November to
|
||||||
# 03:00 the first Sunday on or after January 18. Although ad hoc, it
|
# 03:00 the third Sunday in January. Although ad hoc, it matches
|
||||||
# matches this year's plan and seems more likely to match future
|
# transitions since late 2014 and seems more likely to match future
|
||||||
# practice than guessing no DST.
|
# practice than guessing no DST.
|
||||||
|
|
||||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||||
@ -374,7 +381,7 @@ Rule Fiji 2011 only - Mar Sun>=1 3:00 0 -
|
|||||||
Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 -
|
Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 -
|
||||||
Rule Fiji 2014 only - Jan Sun>=18 2:00 0 -
|
Rule Fiji 2014 only - Jan Sun>=18 2:00 0 -
|
||||||
Rule Fiji 2014 max - Nov Sun>=1 2:00 1:00 S
|
Rule Fiji 2014 max - Nov Sun>=1 2:00 1:00 S
|
||||||
Rule Fiji 2015 max - Jan Sun>=18 3:00 0 -
|
Rule Fiji 2015 max - Jan Sun>=15 3:00 0 -
|
||||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||||
Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva
|
Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva
|
||||||
12:00 Fiji FJ%sT # Fiji Time
|
12:00 Fiji FJ%sT # Fiji Time
|
||||||
@ -533,7 +540,10 @@ Zone Pacific/Niue -11:19:40 - LMT 1901 # Alofi
|
|||||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||||
Zone Pacific/Norfolk 11:11:52 - LMT 1901 # Kingston
|
Zone Pacific/Norfolk 11:11:52 - LMT 1901 # Kingston
|
||||||
11:12 - NMT 1951 # Norfolk Mean Time
|
11:12 - NMT 1951 # Norfolk Mean Time
|
||||||
11:30 - NFT # Norfolk Time
|
11:30 - NFT 1974 Oct 27 02:00 # Norfolk T.
|
||||||
|
11:30 1:00 NFST 1975 Mar 2 02:00
|
||||||
|
11:30 - NFT 2015 Oct 4 02:00
|
||||||
|
11:00 - NFT
|
||||||
|
|
||||||
# Palau (Belau)
|
# Palau (Belau)
|
||||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||||
@ -1573,6 +1583,20 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
|
|||||||
# started DST on June 3. Possibly DST was observed other years
|
# started DST on June 3. Possibly DST was observed other years
|
||||||
# in Midway, but we have no record of it.
|
# in Midway, but we have no record of it.
|
||||||
|
|
||||||
|
# Norfolk
|
||||||
|
|
||||||
|
# From Alexander Krivenyshev (2015-09-23):
|
||||||
|
# Norfolk Island will change ... from +1130 to +1100:
|
||||||
|
# https://www.comlaw.gov.au/Details/F2015L01483/Explanatory%20Statement/Text
|
||||||
|
# ... at 12.30 am (by legal time in New South Wales) on 4 October 2015.
|
||||||
|
# http://www.norfolkisland.gov.nf/nia/MediaRelease/Media%20Release%20Norfolk%20Island%20Standard%20Time%20Change.pdf
|
||||||
|
|
||||||
|
# From Paul Eggert (2015-09-23):
|
||||||
|
# Transitions before 2015 are from timeanddate.com, which consulted
|
||||||
|
# the Norfolk Island Museum and the Australian Bureau of Meteorology's
|
||||||
|
# Norfolk Island station, and found no record of Norfolk observing DST
|
||||||
|
# other than in 1974/5. See:
|
||||||
|
# http://www.timeanddate.com/time/australia/norfolk-island.html
|
||||||
|
|
||||||
# Pitcairn
|
# Pitcairn
|
||||||
|
|
||||||
|
@ -3173,6 +3173,11 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment.
|
|||||||
# http://www.balkaneu.com/eventful-elections-turkey/ 2014-03-30.
|
# http://www.balkaneu.com/eventful-elections-turkey/ 2014-03-30.
|
||||||
# I guess the best we can do is document the official time.
|
# I guess the best we can do is document the official time.
|
||||||
|
|
||||||
|
# From Fatih (2015-09-29):
|
||||||
|
# It's officially announced now by the Ministry of Energy.
|
||||||
|
# Turkey delays winter time to 8th of November 04:00
|
||||||
|
# http://www.aa.com.tr/tr/turkiye/yaz-saati-uygulamasi-8-kasimda-sona-erecek/362217
|
||||||
|
|
||||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||||
Rule Turkey 1916 only - May 1 0:00 1:00 S
|
Rule Turkey 1916 only - May 1 0:00 1:00 S
|
||||||
Rule Turkey 1916 only - Oct 1 0:00 0 -
|
Rule Turkey 1916 only - Oct 1 0:00 0 -
|
||||||
@ -3242,6 +3247,8 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880
|
|||||||
2:00 - EET 2011 Mar 28 1:00u
|
2:00 - EET 2011 Mar 28 1:00u
|
||||||
2:00 EU EE%sT 2014 Mar 30 1:00u
|
2:00 EU EE%sT 2014 Mar 30 1:00u
|
||||||
2:00 - EET 2014 Mar 31 1:00u
|
2:00 - EET 2014 Mar 31 1:00u
|
||||||
|
2:00 EU EE%sT 2015 Oct 25 1:00u
|
||||||
|
2:00 1:00 EEST 2015 Nov 8 1:00u
|
||||||
2:00 EU EE%sT
|
2:00 EU EE%sT
|
||||||
Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents.
|
Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents.
|
||||||
|
|
||||||
|
@ -1849,6 +1849,22 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep
|
|||||||
|
|
||||||
# The transition dates (and times) are guesses.
|
# The transition dates (and times) are guesses.
|
||||||
|
|
||||||
|
# From Matt Johnson (2015-09-21):
|
||||||
|
# Fort Nelson, BC, Canada will cancel DST this year. So while previously they
|
||||||
|
# were aligned with America/Vancouver, they're now aligned with
|
||||||
|
# America/Dawson_Creek.
|
||||||
|
# http://www.northernrockies.ca/EN/meta/news/archives/2015/northern-rockies-time-change.html
|
||||||
|
#
|
||||||
|
# From Tim Parenti (2015-09-23):
|
||||||
|
# This requires a new zone for the Northern Rockies Regional Municipality,
|
||||||
|
# America/Fort_Nelson. The resolution of 2014-12-08 was reached following a
|
||||||
|
# 2014-11-15 poll with nearly 75% support. Effectively, the municipality has
|
||||||
|
# been on MST (-0700) like Dawson Creek since it advanced its clocks on
|
||||||
|
# 2015-03-08.
|
||||||
|
#
|
||||||
|
# From Paul Eggert (2015-09-23):
|
||||||
|
# Shanks says Fort Nelson did not observe DST in 1946, unlike Vancouver.
|
||||||
|
|
||||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||||
Rule Vanc 1918 only - Apr 14 2:00 1:00 D
|
Rule Vanc 1918 only - Apr 14 2:00 1:00 D
|
||||||
Rule Vanc 1918 only - Oct 27 2:00 0 S
|
Rule Vanc 1918 only - Oct 27 2:00 0 S
|
||||||
@ -1867,6 +1883,12 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884
|
|||||||
-8:00 Canada P%sT 1947
|
-8:00 Canada P%sT 1947
|
||||||
-8:00 Vanc P%sT 1972 Aug 30 2:00
|
-8:00 Vanc P%sT 1972 Aug 30 2:00
|
||||||
-7:00 - MST
|
-7:00 - MST
|
||||||
|
Zone America/Fort_Nelson -8:10:47 - LMT 1884
|
||||||
|
-8:00 Vanc P%sT 1946
|
||||||
|
-8:00 - PST 1947
|
||||||
|
-8:00 Vanc P%sT 1987
|
||||||
|
-8:00 Canada P%sT 2015 Mar 8 2:00
|
||||||
|
-7:00 - MST
|
||||||
Zone America/Creston -7:46:04 - LMT 1884
|
Zone America/Creston -7:46:04 - LMT 1884
|
||||||
-7:00 - MST 1916 Oct 1
|
-7:00 - MST 1916 Oct 1
|
||||||
-8:00 - PST 1918 Jun 2
|
-8:00 - PST 1918 Jun 2
|
||||||
|
@ -152,6 +152,7 @@ CA +6227-11421 America/Yellowknife Mountain Time - central Northwest Territories
|
|||||||
CA +682059-1334300 America/Inuvik Mountain Time - west Northwest Territories
|
CA +682059-1334300 America/Inuvik Mountain Time - west Northwest Territories
|
||||||
CA +4906-11631 America/Creston Mountain Standard Time - Creston, British Columbia
|
CA +4906-11631 America/Creston Mountain Standard Time - Creston, British Columbia
|
||||||
CA +5946-12014 America/Dawson_Creek Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia
|
CA +5946-12014 America/Dawson_Creek Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia
|
||||||
|
CA +5848-12242 America/Fort_Nelson Mountain Standard Time - Fort Nelson, British Columbia
|
||||||
CA +4916-12307 America/Vancouver Pacific Time - west British Columbia
|
CA +4916-12307 America/Vancouver Pacific Time - west British Columbia
|
||||||
CA +6043-13503 America/Whitehorse Pacific Time - south Yukon
|
CA +6043-13503 America/Whitehorse Pacific Time - south Yukon
|
||||||
CA +6404-13925 America/Dawson Pacific Time - north Yukon
|
CA +6404-13925 America/Dawson Pacific Time - north Yukon
|
||||||
|
@ -93,8 +93,7 @@ define SetupCompileProperties
|
|||||||
$$($1_TARGET): $$($1_SRCS) $$($1_JAVAS) $(BUILD_TOOLS_JDK)
|
$$($1_TARGET): $$($1_SRCS) $$($1_JAVAS) $(BUILD_TOOLS_JDK)
|
||||||
$(MKDIR) -p $$(@D) $$($1_DIRS)
|
$(MKDIR) -p $$(@D) $$($1_DIRS)
|
||||||
$(ECHO) Compiling $$(words $$($1_SRCS)) properties into resource bundles for $(MODULE)
|
$(ECHO) Compiling $$(words $$($1_SRCS)) properties into resource bundles for $(MODULE)
|
||||||
$(RM) $$($1_CMDLINE_FILE)
|
$$(eval $$(call ListPathsSafely, $1_CMDLINE, $$($1_CMDLINE_FILE)))
|
||||||
$$(call ListPathsSafely,$1_CMDLINE,\n, >> $$($1_CMDLINE_FILE))
|
|
||||||
$(TOOL_COMPILEPROPERTIES) -quiet @$$($1_CMDLINE_FILE)
|
$(TOOL_COMPILEPROPERTIES) -quiet @$$($1_CMDLINE_FILE)
|
||||||
$(TOUCH) $$@
|
$(TOUCH) $$@
|
||||||
|
|
||||||
|
@ -26,5 +26,6 @@
|
|||||||
include LauncherCommon.gmk
|
include LauncherCommon.gmk
|
||||||
|
|
||||||
$(eval $(call SetupLauncher,jjs, \
|
$(eval $(call SetupLauncher,jjs, \
|
||||||
|
-DENABLE_ARG_FILES \
|
||||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "jdk.nashorn.tools.jjs.Main"$(COMMA) }'))
|
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "jdk.nashorn.tools.jjs.Main"$(COMMA) }'))
|
||||||
|
|
||||||
|
@ -959,10 +959,9 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
|
|||||||
$(X_CFLAGS) \
|
$(X_CFLAGS) \
|
||||||
$(X_LIBS) \
|
$(X_LIBS) \
|
||||||
$(LIBAWT_LWAWT_CFLAGS), \
|
$(LIBAWT_LWAWT_CFLAGS), \
|
||||||
DISABLED_WARNINGS_clang := incomplete-implementation \
|
DISABLED_WARNINGS_clang := incomplete-implementation enum-conversion \
|
||||||
deprecated-declarations objc-method-access bitwise-op-parentheses \
|
deprecated-declarations objc-method-access bitwise-op-parentheses \
|
||||||
incompatible-pointer-types parentheses-equality extra-tokens, \
|
incompatible-pointer-types parentheses-equality extra-tokens, \
|
||||||
WARNINGS_AS_ERRORS_clang := false, \
|
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN) \
|
$(call SET_SHARED_LIBRARY_ORIGIN) \
|
||||||
-L$(INSTALL_LIBRARIES_HERE), \
|
-L$(INSTALL_LIBRARIES_HERE), \
|
||||||
|
@ -160,6 +160,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA, \
|
|||||||
-framework Security -framework SystemConfiguration, \
|
-framework Security -framework SystemConfiguration, \
|
||||||
LDFLAGS_SUFFIX_windows := -export:winFileHandleOpen -export:handleLseek \
|
LDFLAGS_SUFFIX_windows := -export:winFileHandleOpen -export:handleLseek \
|
||||||
-export:getLastErrorString \
|
-export:getLastErrorString \
|
||||||
|
-export:getErrorString \
|
||||||
jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \
|
jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \
|
||||||
shell32.lib delayimp.lib -DELAYLOAD:shell32.dll \
|
shell32.lib delayimp.lib -DELAYLOAD:shell32.dll \
|
||||||
advapi32.lib version.lib, \
|
advapi32.lib version.lib, \
|
||||||
|
@ -282,8 +282,9 @@ SUNWprivate_1.1 {
|
|||||||
|
|
||||||
# ZipFile.c needs this one
|
# ZipFile.c needs this one
|
||||||
throwFileNotFoundException;
|
throwFileNotFoundException;
|
||||||
# zip_util.c needs this one
|
# zip_util.c needs these
|
||||||
getLastErrorString;
|
getLastErrorString;
|
||||||
|
getErrorString;
|
||||||
|
|
||||||
# Outcalls from libjvm done using dlsym().
|
# Outcalls from libjvm done using dlsym().
|
||||||
|
|
||||||
|
@ -31,9 +31,9 @@ include RMICompilation.gmk
|
|||||||
|
|
||||||
##########################################################################################
|
##########################################################################################
|
||||||
|
|
||||||
BTRMIC_CP := $(call PathList, $(INTERIM_CORBA_JAR) \
|
BTRMIC_CP := $(call PathList, \
|
||||||
$(BUILDTOOLS_OUTPUTDIR)/interim_rmic_classes $(INTERIM_LANGTOOLS_JAR))
|
$(BUILDTOOLS_OUTPUTDIR)/interim_rmic_classes $(INTERIM_LANGTOOLS_JAR))
|
||||||
BTRMIC_ARGS := -Xbootclasspath/p:$(BTRMIC_CP) -cp $(BTRMIC_CP)
|
BTRMIC_ARGS := -cp $(BTRMIC_CP)
|
||||||
RMIC := $(JAVA) $(BTRMIC_ARGS) sun.rmi.rmic.Main
|
RMIC := $(JAVA) $(BTRMIC_ARGS) sun.rmi.rmic.Main
|
||||||
|
|
||||||
CLASSES_DIR := $(JDK_OUTPUTDIR)/modules
|
CLASSES_DIR := $(JDK_OUTPUTDIR)/modules
|
||||||
|
@ -105,6 +105,7 @@ public class ModuleArchive implements Archive {
|
|||||||
entries.addAll(stream
|
entries.addAll(stream
|
||||||
.filter(p -> !Files.isDirectory(p)
|
.filter(p -> !Files.isDirectory(p)
|
||||||
&& !classes.relativize(p).toString().startsWith("_the.")
|
&& !classes.relativize(p).toString().startsWith("_the.")
|
||||||
|
&& !classes.relativize(p).toString().endsWith(".bc")
|
||||||
&& !classes.relativize(p).toString().equals("javac_state"))
|
&& !classes.relativize(p).toString().equals("javac_state"))
|
||||||
.sorted()
|
.sorted()
|
||||||
.map(p -> toEntry(p, classes, EntryType.CLASS_OR_RESOURCE))
|
.map(p -> toEntry(p, classes, EntryType.CLASS_OR_RESOURCE))
|
||||||
|
@ -504,11 +504,11 @@ class Atom {
|
|||||||
|
|
||||||
private static Applet applet;
|
private static Applet applet;
|
||||||
private static byte[] data;
|
private static byte[] data;
|
||||||
private final static int R = 40;
|
private static final int R = 40;
|
||||||
private final static int hx = 15;
|
private static final int hx = 15;
|
||||||
private final static int hy = 15;
|
private static final int hy = 15;
|
||||||
private final static int bgGrey = 192;
|
private static final int bgGrey = 192;
|
||||||
private final static int nBalls = 16;
|
private static final int nBalls = 16;
|
||||||
private static int maxr;
|
private static int maxr;
|
||||||
private int Rl;
|
private int Rl;
|
||||||
private int Gl;
|
private int Gl;
|
||||||
|
@ -771,7 +771,7 @@ public abstract class ImageTests extends GraphicsTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static abstract class ImageOpTests extends ImageTests {
|
private abstract static class ImageOpTests extends ImageTests {
|
||||||
ImageOpTests(Group parent, String nodeName, String desc) {
|
ImageOpTests(Group parent, String nodeName, String desc) {
|
||||||
super(parent, nodeName, desc,
|
super(parent, nodeName, desc,
|
||||||
new Modifier.Filter() {
|
new Modifier.Filter() {
|
||||||
|
@ -245,7 +245,7 @@ public abstract class PixelTests extends Test {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static abstract class BufImgTest extends PixelTests {
|
public abstract static class BufImgTest extends PixelTests {
|
||||||
public BufImgTest(String nodeName, String description) {
|
public BufImgTest(String nodeName, String description) {
|
||||||
super(bufimgtestroot, nodeName, description);
|
super(bufimgtestroot, nodeName, description);
|
||||||
}
|
}
|
||||||
@ -281,7 +281,7 @@ public abstract class PixelTests extends Test {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static abstract class RasTest extends PixelTests {
|
public abstract static class RasTest extends PixelTests {
|
||||||
public RasTest(String nodeName, String description) {
|
public RasTest(String nodeName, String description) {
|
||||||
super(rastertestroot, nodeName, description);
|
super(rastertestroot, nodeName, description);
|
||||||
}
|
}
|
||||||
@ -355,7 +355,7 @@ public abstract class PixelTests extends Test {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static abstract class DataBufTest extends PixelTests {
|
public abstract static class DataBufTest extends PixelTests {
|
||||||
public DataBufTest(String nodeName, String description) {
|
public DataBufTest(String nodeName, String description) {
|
||||||
super(dbtestroot, nodeName, description);
|
super(dbtestroot, nodeName, description);
|
||||||
}
|
}
|
||||||
|
@ -161,7 +161,7 @@ abstract class InputTests extends IIOTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static abstract class Context {
|
protected abstract static class Context {
|
||||||
int size;
|
int size;
|
||||||
Object input;
|
Object input;
|
||||||
int inputType;
|
int inputType;
|
||||||
|
@ -156,7 +156,7 @@ abstract class OutputTests extends IIOTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static abstract class Context {
|
protected abstract static class Context {
|
||||||
int size;
|
int size;
|
||||||
Object output;
|
Object output;
|
||||||
int outputType;
|
int outputType;
|
||||||
|
@ -232,7 +232,7 @@ public abstract class TextMeasureTests extends TextTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static abstract class GVMeasureTest extends TextMeasureTests {
|
public abstract static class GVMeasureTest extends TextMeasureTests {
|
||||||
protected GVMeasureTest(Group parent, String nodeName, String description) {
|
protected GVMeasureTest(Group parent, String nodeName, String description) {
|
||||||
super(parent, nodeName, description);
|
super(parent, nodeName, description);
|
||||||
}
|
}
|
||||||
@ -431,7 +431,7 @@ public abstract class TextMeasureTests extends TextTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static abstract class TLMeasureTest extends TextMeasureTests {
|
public abstract static class TLMeasureTest extends TextMeasureTests {
|
||||||
protected TLMeasureTest(Group parent, String nodeName, String description) {
|
protected TLMeasureTest(Group parent, String nodeName, String description) {
|
||||||
super(parent, nodeName, description);
|
super(parent, nodeName, description);
|
||||||
}
|
}
|
||||||
@ -506,7 +506,7 @@ public abstract class TextMeasureTests extends TextTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static abstract class TLExtendedMeasureTest extends TLMeasureTest {
|
public abstract static class TLExtendedMeasureTest extends TLMeasureTest {
|
||||||
protected TLExtendedMeasureTest(Group parent, String nodeName, String description) {
|
protected TLExtendedMeasureTest(Group parent, String nodeName, String description) {
|
||||||
super(parent, nodeName, description);
|
super(parent, nodeName, description);
|
||||||
}
|
}
|
||||||
|
@ -143,11 +143,11 @@ public class FileChooserDemo extends JPanel implements ActionListener {
|
|||||||
private JTextField customField;
|
private JTextField customField;
|
||||||
private final ExampleFileView fileView;
|
private final ExampleFileView fileView;
|
||||||
private final ExampleFileSystemView fileSystemView;
|
private final ExampleFileSystemView fileSystemView;
|
||||||
private final static Dimension hpad10 = new Dimension(10, 1);
|
private static final Dimension hpad10 = new Dimension(10, 1);
|
||||||
private final static Dimension vpad20 = new Dimension(1, 20);
|
private static final Dimension vpad20 = new Dimension(1, 20);
|
||||||
private final static Dimension vpad7 = new Dimension(1, 7);
|
private static final Dimension vpad7 = new Dimension(1, 7);
|
||||||
private final static Dimension vpad4 = new Dimension(1, 4);
|
private static final Dimension vpad4 = new Dimension(1, 4);
|
||||||
private final static Insets insets = new Insets(5, 10, 0, 10);
|
private static final Insets insets = new Insets(5, 10, 0, 10);
|
||||||
private final FilePreviewer previewer;
|
private final FilePreviewer previewer;
|
||||||
private final JFileChooser chooser;
|
private final JFileChooser chooser;
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ class Notepad extends JPanel {
|
|||||||
|
|
||||||
protected static Properties properties;
|
protected static Properties properties;
|
||||||
private static ResourceBundle resources;
|
private static ResourceBundle resources;
|
||||||
private final static String EXIT_AFTER_PAINT = "-exit";
|
private static final String EXIT_AFTER_PAINT = "-exit";
|
||||||
private static boolean exitAfterFirstPaint;
|
private static boolean exitAfterFirstPaint;
|
||||||
|
|
||||||
private static final String[] MENUBAR_KEYS = {"file", "edit", "debug"};
|
private static final String[] MENUBAR_KEYS = {"file", "edit", "debug"};
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -65,9 +65,23 @@ class EPollSelectorImpl
|
|||||||
long pipeFds = IOUtil.makePipe(false);
|
long pipeFds = IOUtil.makePipe(false);
|
||||||
fd0 = (int) (pipeFds >>> 32);
|
fd0 = (int) (pipeFds >>> 32);
|
||||||
fd1 = (int) pipeFds;
|
fd1 = (int) pipeFds;
|
||||||
pollWrapper = new EPollArrayWrapper();
|
try {
|
||||||
pollWrapper.initInterrupt(fd0, fd1);
|
pollWrapper = new EPollArrayWrapper();
|
||||||
fdToKey = new HashMap<>();
|
pollWrapper.initInterrupt(fd0, fd1);
|
||||||
|
fdToKey = new HashMap<>();
|
||||||
|
} catch (Throwable t) {
|
||||||
|
try {
|
||||||
|
FileDispatcherImpl.closeIntFD(fd0);
|
||||||
|
} catch (IOException ioe0) {
|
||||||
|
t.addSuppressed(ioe0);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
FileDispatcherImpl.closeIntFD(fd1);
|
||||||
|
} catch (IOException ioe1) {
|
||||||
|
t.addSuppressed(ioe1);
|
||||||
|
}
|
||||||
|
throw t;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected int doSelect(long timeout) throws IOException {
|
protected int doSelect(long timeout) throws IOException {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -84,10 +84,24 @@ class KQueueSelectorImpl
|
|||||||
long fds = IOUtil.makePipe(false);
|
long fds = IOUtil.makePipe(false);
|
||||||
fd0 = (int)(fds >>> 32);
|
fd0 = (int)(fds >>> 32);
|
||||||
fd1 = (int)fds;
|
fd1 = (int)fds;
|
||||||
kqueueWrapper = new KQueueArrayWrapper();
|
try {
|
||||||
kqueueWrapper.initInterrupt(fd0, fd1);
|
kqueueWrapper = new KQueueArrayWrapper();
|
||||||
fdMap = new HashMap<>();
|
kqueueWrapper.initInterrupt(fd0, fd1);
|
||||||
totalChannels = 1;
|
fdMap = new HashMap<>();
|
||||||
|
totalChannels = 1;
|
||||||
|
} catch (Throwable t) {
|
||||||
|
try {
|
||||||
|
FileDispatcherImpl.closeIntFD(fd0);
|
||||||
|
} catch (IOException ioe0) {
|
||||||
|
t.addSuppressed(ioe0);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
FileDispatcherImpl.closeIntFD(fd1);
|
||||||
|
} catch (IOException ioe1) {
|
||||||
|
t.addSuppressed(ioe1);
|
||||||
|
}
|
||||||
|
throw t;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -34,6 +34,7 @@ import java.io.FileInputStream;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.time.ZoneOffset;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -41,7 +42,6 @@ import java.util.List;
|
|||||||
import java.util.ListIterator;
|
import java.util.ListIterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.SortedMap;
|
import java.util.SortedMap;
|
||||||
import java.util.TimeZone;
|
|
||||||
import java.util.jar.JarEntry;
|
import java.util.jar.JarEntry;
|
||||||
import java.util.jar.JarFile;
|
import java.util.jar.JarFile;
|
||||||
import java.util.jar.JarInputStream;
|
import java.util.jar.JarInputStream;
|
||||||
@ -84,13 +84,8 @@ public class PackerImpl extends TLGlobals implements Pack200.Packer {
|
|||||||
*/
|
*/
|
||||||
public synchronized void pack(JarFile in, OutputStream out) throws IOException {
|
public synchronized void pack(JarFile in, OutputStream out) throws IOException {
|
||||||
assert(Utils.currentInstance.get() == null);
|
assert(Utils.currentInstance.get() == null);
|
||||||
TimeZone tz = (props.getBoolean(Utils.PACK_DEFAULT_TIMEZONE))
|
|
||||||
? null
|
|
||||||
: TimeZone.getDefault();
|
|
||||||
try {
|
try {
|
||||||
Utils.currentInstance.set(this);
|
Utils.currentInstance.set(this);
|
||||||
if (tz != null) TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
|
|
||||||
|
|
||||||
if ("0".equals(props.getProperty(Pack200.Packer.EFFORT))) {
|
if ("0".equals(props.getProperty(Pack200.Packer.EFFORT))) {
|
||||||
Utils.copyJarFile(in, out);
|
Utils.copyJarFile(in, out);
|
||||||
} else {
|
} else {
|
||||||
@ -98,7 +93,6 @@ public class PackerImpl extends TLGlobals implements Pack200.Packer {
|
|||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
Utils.currentInstance.set(null);
|
Utils.currentInstance.set(null);
|
||||||
if (tz != null) TimeZone.setDefault(tz);
|
|
||||||
in.close();
|
in.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -119,11 +113,8 @@ public class PackerImpl extends TLGlobals implements Pack200.Packer {
|
|||||||
*/
|
*/
|
||||||
public synchronized void pack(JarInputStream in, OutputStream out) throws IOException {
|
public synchronized void pack(JarInputStream in, OutputStream out) throws IOException {
|
||||||
assert(Utils.currentInstance.get() == null);
|
assert(Utils.currentInstance.get() == null);
|
||||||
TimeZone tz = (props.getBoolean(Utils.PACK_DEFAULT_TIMEZONE)) ? null :
|
|
||||||
TimeZone.getDefault();
|
|
||||||
try {
|
try {
|
||||||
Utils.currentInstance.set(this);
|
Utils.currentInstance.set(this);
|
||||||
if (tz != null) TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
|
|
||||||
if ("0".equals(props.getProperty(Pack200.Packer.EFFORT))) {
|
if ("0".equals(props.getProperty(Pack200.Packer.EFFORT))) {
|
||||||
Utils.copyJarFile(in, out);
|
Utils.copyJarFile(in, out);
|
||||||
} else {
|
} else {
|
||||||
@ -131,7 +122,6 @@ public class PackerImpl extends TLGlobals implements Pack200.Packer {
|
|||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
Utils.currentInstance.set(null);
|
Utils.currentInstance.set(null);
|
||||||
if (tz != null) TimeZone.setDefault(tz);
|
|
||||||
in.close();
|
in.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -327,7 +317,9 @@ public class PackerImpl extends TLGlobals implements Pack200.Packer {
|
|||||||
this.f = null;
|
this.f = null;
|
||||||
this.jf = jf;
|
this.jf = jf;
|
||||||
this.je = je;
|
this.je = je;
|
||||||
int timeSecs = getModtime(je.getTime());
|
int timeSecs = (int) je.getTimeLocal()
|
||||||
|
.atOffset(ZoneOffset.UTC)
|
||||||
|
.toEpochSecond();
|
||||||
if (keepModtime && timeSecs != Constants.NO_MODTIME) {
|
if (keepModtime && timeSecs != Constants.NO_MODTIME) {
|
||||||
this.modtime = timeSecs;
|
this.modtime = timeSecs;
|
||||||
} else if (latestModtime && timeSecs > pkg.default_modtime) {
|
} else if (latestModtime && timeSecs > pkg.default_modtime) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -69,10 +69,6 @@ final class PropMap implements SortedMap<String, String> {
|
|||||||
props.put(Utils.DEBUG_VERBOSE,
|
props.put(Utils.DEBUG_VERBOSE,
|
||||||
String.valueOf(Integer.getInteger(Utils.DEBUG_VERBOSE,0)));
|
String.valueOf(Integer.getInteger(Utils.DEBUG_VERBOSE,0)));
|
||||||
|
|
||||||
// Set the PACK_TIMEZONE_NO_UTC
|
|
||||||
props.put(Utils.PACK_DEFAULT_TIMEZONE,
|
|
||||||
String.valueOf(Boolean.getBoolean(Utils.PACK_DEFAULT_TIMEZONE)));
|
|
||||||
|
|
||||||
// The segment size is unlimited
|
// The segment size is unlimited
|
||||||
props.put(Pack200.Packer.SEGMENT_LIMIT, "-1");
|
props.put(Pack200.Packer.SEGMENT_LIMIT, "-1");
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -32,10 +32,11 @@ import java.io.FileInputStream;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneOffset;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.SortedMap;
|
import java.util.SortedMap;
|
||||||
import java.util.TimeZone;
|
|
||||||
import java.util.jar.JarEntry;
|
import java.util.jar.JarEntry;
|
||||||
import java.util.jar.JarInputStream;
|
import java.util.jar.JarInputStream;
|
||||||
import java.util.jar.JarOutputStream;
|
import java.util.jar.JarOutputStream;
|
||||||
@ -95,13 +96,9 @@ public class UnpackerImpl extends TLGlobals implements Pack200.Unpacker {
|
|||||||
throw new NullPointerException("null output");
|
throw new NullPointerException("null output");
|
||||||
}
|
}
|
||||||
assert(Utils.currentInstance.get() == null);
|
assert(Utils.currentInstance.get() == null);
|
||||||
TimeZone tz = (props.getBoolean(Utils.PACK_DEFAULT_TIMEZONE))
|
|
||||||
? null
|
|
||||||
: TimeZone.getDefault();
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Utils.currentInstance.set(this);
|
Utils.currentInstance.set(this);
|
||||||
if (tz != null) TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
|
|
||||||
final int verbose = props.getInteger(Utils.DEBUG_VERBOSE);
|
final int verbose = props.getInteger(Utils.DEBUG_VERBOSE);
|
||||||
BufferedInputStream in0 = new BufferedInputStream(in);
|
BufferedInputStream in0 = new BufferedInputStream(in);
|
||||||
if (Utils.isJarMagic(Utils.readMagic(in0))) {
|
if (Utils.isJarMagic(Utils.readMagic(in0))) {
|
||||||
@ -125,7 +122,6 @@ public class UnpackerImpl extends TLGlobals implements Pack200.Unpacker {
|
|||||||
} finally {
|
} finally {
|
||||||
_nunp = null;
|
_nunp = null;
|
||||||
Utils.currentInstance.set(null);
|
Utils.currentInstance.set(null);
|
||||||
if (tz != null) TimeZone.setDefault(tz);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,9 +242,9 @@ public class UnpackerImpl extends TLGlobals implements Pack200.Unpacker {
|
|||||||
je.setCrc(crc.getValue());
|
je.setCrc(crc.getValue());
|
||||||
}
|
}
|
||||||
if (keepModtime) {
|
if (keepModtime) {
|
||||||
je.setTime(file.modtime);
|
LocalDateTime ldt = LocalDateTime
|
||||||
// Convert back to milliseconds
|
.ofEpochSecond(file.modtime, 0, ZoneOffset.UTC);
|
||||||
je.setTime((long)file.modtime * 1000);
|
je.setTimeLocal(ldt);
|
||||||
} else {
|
} else {
|
||||||
je.setTime((long)modtime * 1000);
|
je.setTime((long)modtime * 1000);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -61,13 +61,6 @@ class Utils {
|
|||||||
*/
|
*/
|
||||||
static final String DEBUG_DISABLE_NATIVE = COM_PREFIX+"disable.native";
|
static final String DEBUG_DISABLE_NATIVE = COM_PREFIX+"disable.native";
|
||||||
|
|
||||||
/*
|
|
||||||
* Use the default working TimeZone instead of UTC.
|
|
||||||
* Note: This has installer unpacker implications.
|
|
||||||
* see: zip.cpp which uses gmtime vs. localtime.
|
|
||||||
*/
|
|
||||||
static final String PACK_DEFAULT_TIMEZONE = COM_PREFIX+"default.timezone";
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Property indicating that the unpacker should
|
* Property indicating that the unpacker should
|
||||||
* ignore the transmitted PACK_MODIFICATION_TIME,
|
* ignore the transmitted PACK_MODIFICATION_TIME,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -56,7 +56,9 @@ class NTLM {
|
|||||||
private final Mac hmac;
|
private final Mac hmac;
|
||||||
private final MessageDigest md5;
|
private final MessageDigest md5;
|
||||||
private static final boolean DEBUG =
|
private static final boolean DEBUG =
|
||||||
System.getProperty("ntlm.debug") != null;
|
java.security.AccessController.doPrivileged(
|
||||||
|
new sun.security.action.GetBooleanAction("ntlm.debug"))
|
||||||
|
.booleanValue();
|
||||||
|
|
||||||
final Version v;
|
final Version v;
|
||||||
|
|
||||||
|
@ -27,6 +27,8 @@ package java.io;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
import jdk.internal.misc.JavaIOAccess;
|
||||||
|
import jdk.internal.misc.SharedSecrets;
|
||||||
import sun.nio.cs.StreamDecoder;
|
import sun.nio.cs.StreamDecoder;
|
||||||
import sun.nio.cs.StreamEncoder;
|
import sun.nio.cs.StreamEncoder;
|
||||||
|
|
||||||
@ -519,7 +521,7 @@ public final class Console implements Flushable
|
|||||||
try {
|
try {
|
||||||
// Add a shutdown hook to restore console's echo state should
|
// Add a shutdown hook to restore console's echo state should
|
||||||
// it be necessary.
|
// it be necessary.
|
||||||
sun.misc.SharedSecrets.getJavaLangAccess()
|
SharedSecrets.getJavaLangAccess()
|
||||||
.registerShutdownHook(0 /* shutdown hook invocation order */,
|
.registerShutdownHook(0 /* shutdown hook invocation order */,
|
||||||
false /* only register if shutdown is not in progress */,
|
false /* only register if shutdown is not in progress */,
|
||||||
new Runnable() {
|
new Runnable() {
|
||||||
@ -536,7 +538,7 @@ public final class Console implements Flushable
|
|||||||
// by a shutdown hook
|
// by a shutdown hook
|
||||||
}
|
}
|
||||||
|
|
||||||
sun.misc.SharedSecrets.setJavaIOAccess(new sun.misc.JavaIOAccess() {
|
SharedSecrets.setJavaIOAccess(new JavaIOAccess() {
|
||||||
public Console console() {
|
public Console console() {
|
||||||
if (istty()) {
|
if (istty()) {
|
||||||
if (cons == null)
|
if (cons == null)
|
||||||
|
@ -26,6 +26,7 @@ package java.io;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import jdk.internal.misc.SharedSecrets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class holds a set of filenames to be deleted on VM exit through a shutdown hook.
|
* This class holds a set of filenames to be deleted on VM exit through a shutdown hook.
|
||||||
@ -41,7 +42,7 @@ class DeleteOnExitHook {
|
|||||||
// delete on exit list and cause the DeleteOnExitHook to be
|
// delete on exit list and cause the DeleteOnExitHook to be
|
||||||
// registered during shutdown in progress. So set the
|
// registered during shutdown in progress. So set the
|
||||||
// registerShutdownInProgress parameter to true.
|
// registerShutdownInProgress parameter to true.
|
||||||
sun.misc.SharedSecrets.getJavaLangAccess()
|
SharedSecrets.getJavaLangAccess()
|
||||||
.registerShutdownHook(2 /* Shutdown hook invocation order */,
|
.registerShutdownHook(2 /* Shutdown hook invocation order */,
|
||||||
true /* register even if shutdown in progress */,
|
true /* register even if shutdown in progress */,
|
||||||
new Runnable() {
|
new Runnable() {
|
||||||
|
@ -27,8 +27,8 @@ package java.io;
|
|||||||
|
|
||||||
import java.nio.channels.FileChannel;
|
import java.nio.channels.FileChannel;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import sun.misc.SharedSecrets;
|
import jdk.internal.misc.SharedSecrets;
|
||||||
import sun.misc.JavaIOFileDescriptorAccess;
|
import jdk.internal.misc.JavaIOFileDescriptorAccess;
|
||||||
import sun.nio.ch.FileChannelImpl;
|
import sun.nio.ch.FileChannelImpl;
|
||||||
|
|
||||||
|
|
||||||
|
@ -352,15 +352,15 @@ class FdLibm {
|
|||||||
|
|
||||||
double p_h, p_l, t1, t2;
|
double p_h, p_l, t1, t2;
|
||||||
// |y| is huge
|
// |y| is huge
|
||||||
if (y_abs > 0x1.0p31) { // if |y| > 2**31
|
if (y_abs > 0x1.00000_ffff_ffffp31) { // if |y| > ~2**31
|
||||||
final double INV_LN2 = 0x1.7154_7652_b82fep0; // 1.44269504088896338700e+00 = 1/ln2
|
final double INV_LN2 = 0x1.7154_7652_b82fep0; // 1.44269504088896338700e+00 = 1/ln2
|
||||||
final double INV_LN2_H = 0x1.715476p0; // 1.44269502162933349609e+00 = 24 bits of 1/ln2
|
final double INV_LN2_H = 0x1.715476p0; // 1.44269502162933349609e+00 = 24 bits of 1/ln2
|
||||||
final double INV_LN2_L = 0x1.4ae0_bf85_ddf44p-26; // 1.92596299112661746887e-08 = 1/ln2 tail
|
final double INV_LN2_L = 0x1.4ae0_bf85_ddf44p-26; // 1.92596299112661746887e-08 = 1/ln2 tail
|
||||||
|
|
||||||
// Over/underflow if x is not close to one
|
// Over/underflow if x is not close to one
|
||||||
if (x_abs < 0x1.fffffp-1) // |x| < 0.9999995231628418
|
if (x_abs < 0x1.fffff_0000_0000p-1) // |x| < ~0.9999995231628418
|
||||||
return (y < 0.0) ? s * INFINITY : s * 0.0;
|
return (y < 0.0) ? s * INFINITY : s * 0.0;
|
||||||
if (x_abs > 1.0) // |x| > 1.0
|
if (x_abs > 0x1.00000_ffff_ffffp0) // |x| > ~1.0
|
||||||
return (y > 0.0) ? s * INFINITY : s * 0.0;
|
return (y > 0.0) ? s * INFINITY : s * 0.0;
|
||||||
/*
|
/*
|
||||||
* now |1-x| is tiny <= 2**-20, sufficient to compute
|
* now |1-x| is tiny <= 2**-20, sufficient to compute
|
||||||
|
@ -43,6 +43,8 @@ import sun.reflect.Reflection;
|
|||||||
import sun.security.util.SecurityConstants;
|
import sun.security.util.SecurityConstants;
|
||||||
import sun.reflect.annotation.AnnotationType;
|
import sun.reflect.annotation.AnnotationType;
|
||||||
import jdk.internal.HotSpotIntrinsicCandidate;
|
import jdk.internal.HotSpotIntrinsicCandidate;
|
||||||
|
import jdk.internal.misc.JavaLangAccess;;
|
||||||
|
import jdk.internal.misc.SharedSecrets;;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The <code>System</code> class contains several useful class fields
|
* The <code>System</code> class contains several useful class fields
|
||||||
@ -212,7 +214,7 @@ public final class System {
|
|||||||
public static Console console() {
|
public static Console console() {
|
||||||
if (cons == null) {
|
if (cons == null) {
|
||||||
synchronized (System.class) {
|
synchronized (System.class) {
|
||||||
cons = sun.misc.SharedSecrets.getJavaIOAccess().console();
|
cons = SharedSecrets.getJavaIOAccess().console();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return cons;
|
return cons;
|
||||||
@ -1216,7 +1218,7 @@ public final class System {
|
|||||||
|
|
||||||
private static void setJavaLangAccess() {
|
private static void setJavaLangAccess() {
|
||||||
// Allow privileged classes outside of java.lang
|
// Allow privileged classes outside of java.lang
|
||||||
sun.misc.SharedSecrets.setJavaLangAccess(new sun.misc.JavaLangAccess(){
|
SharedSecrets.setJavaLangAccess(new JavaLangAccess(){
|
||||||
public sun.reflect.ConstantPool getConstantPool(Class<?> klass) {
|
public sun.reflect.ConstantPool getConstantPool(Class<?> klass) {
|
||||||
return klass.getConstantPool();
|
return klass.getConstantPool();
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user