diff --git a/.hgtags b/.hgtags
index b5ffdaee57d..462b081a399 100644
--- a/.hgtags
+++ b/.hgtags
@@ -343,3 +343,5 @@ f242d4332f563648426a1b0fa02d8741beba19ef jdk9-b92
d00ad2d9049ac60815f70bff445e95df85648bd2 jdk-9+98
f9bcdce2df26678c3fe468130b535c0342c69b89 jdk-9+99
4379223f8806626852c46c52d4e7a27a584b406e jdk-9+100
+80f67512daa15cf37b4825c1c62a675d524d7c49 jdk-9+101
+2dc4c11fe48831854916d53c3913bdb7d49023ea jdk-9+102
diff --git a/.hgtags-top-repo b/.hgtags-top-repo
index 67085b3ac37..ae78a92b7f7 100644
--- a/.hgtags-top-repo
+++ b/.hgtags-top-repo
@@ -343,3 +343,5 @@ cf1dc4c035fb84693d4ae5ad818785cb4d1465d1 jdk9-b90
48987460c7d49a29013963ee44d090194396bb61 jdk-9+98
7c0577bea4c65d69c5bef67023a89d2efa4fb2f7 jdk-9+99
c1f30ac14db0eaff398429c04cd9fab92e1b4b2a jdk-9+100
+c4d72a1620835b5d657b7b6792c2879367d0154f jdk-9+101
+6406ecf5d39482623225bb1b3098c2cac6f7d450 jdk-9+102
diff --git a/common/autoconf/basics.m4 b/common/autoconf/basics.m4
index f6b11c8a3bf..be85de751eb 100644
--- a/common/autoconf/basics.m4
+++ b/common/autoconf/basics.m4
@@ -23,6 +23,74 @@
# questions.
#
+# Create a function/macro that takes a series of named arguments. The call is
+# similar to AC_DEFUN, but the setup of the function looks like this:
+# BASIC_DEFUN_NAMED([MYFUNC], [FOO *BAR], [$@], [
+# ... do something
+# AC_MSG_NOTICE([Value of BAR is ARG_BAR])
+# ])
+# A star (*) in front of a named argument means that it is required and it's
+# presence will be verified. To pass e.g. the first value as a normal indexed
+# argument, use [m4_shift($@)] as the third argument instead of [$@]. These
+# arguments are referenced in the function by their name prefixed by ARG_, e.g.
+# "ARG_FOO".
+#
+# The generated function can be called like this:
+# MYFUNC(FOO: [foo-val], BAR:
+# [
+# $ECHO hello world
+# ])
+#
+#
+# Argument 1: Name of the function to define
+# Argument 2: List of legal named arguments, with a * prefix for required arguments
+# Argument 3: Argument array to treat as named, typically $@
+# Argument 4: The main function body
+AC_DEFUN([BASIC_DEFUN_NAMED],
+[
+ AC_DEFUN($1, [
+ m4_foreach(arg, m4_split($2), [
+ m4_if(m4_bregexp(arg, [^\*]), -1,
+ [
+ m4_set_add(legal_named_args, arg)
+ ],
+ [
+ m4_set_add(legal_named_args, m4_substr(arg, 1))
+ m4_set_add(required_named_args, m4_substr(arg, 1))
+ ]
+ )
+ ])
+
+ m4_foreach([arg], [$3], [
+ m4_define(arg_name, m4_substr(arg, 0, m4_bregexp(arg, [: ])))
+ m4_set_contains(legal_named_args, arg_name, [],[AC_MSG_ERROR([Internal error: arg_name is not a valid named argument to [$1]. Valid arguments are 'm4_set_contents(legal_named_args, [ ])'.])])
+ m4_set_remove(required_named_args, arg_name)
+ m4_set_remove(legal_named_args, arg_name)
+ m4_pushdef([ARG_][]arg_name, m4_substr(arg, m4_incr(m4_incr(m4_bregexp(arg, [: ])))))
+ m4_set_add(defined_args, arg_name)
+ m4_undefine([arg_name])
+ ])
+ m4_set_empty(required_named_args, [], [
+ AC_MSG_ERROR([Internal error: Required named arguments are missing for [$1]. Missing arguments: 'm4_set_contents(required_named_args, [ ])'])
+ ])
+ m4_foreach([arg], m4_indir([m4_dquote]m4_set_listc([legal_named_args])), [
+ m4_pushdef([ARG_][]arg, [])
+ m4_set_add(defined_args, arg)
+ ])
+ m4_set_delete(legal_named_args)
+ m4_set_delete(required_named_args)
+
+ # Execute function body
+ $4
+
+ m4_foreach([arg], m4_indir([m4_dquote]m4_set_listc([defined_args])), [
+ m4_popdef([ARG_][]arg)
+ ])
+
+ m4_set_delete(defined_args)
+ ])
+])
+
# Test if $1 is a valid argument to $3 (often is $JAVA passed as $3)
# If so, then append $1 to $2 \
# Also set JVM_ARG_OK to true/false depending on outcome.
@@ -1122,7 +1190,6 @@ AC_DEFUN_ONCE([BASIC_POST_CONFIG_OUTPUT],
# Move configure.log from current directory to the build output root
if test -e ./configure.log; then
- echo found it
$MV -f ./configure.log "$OUTPUT_ROOT/configure.log" 2> /dev/null
fi
diff --git a/common/autoconf/build-performance.m4 b/common/autoconf/build-performance.m4
index 463498f8471..8d653aa71d6 100644
--- a/common/autoconf/build-performance.m4
+++ b/common/autoconf/build-performance.m4
@@ -37,9 +37,9 @@ AC_DEFUN([BPERF_CHECK_CORES],
# Looks like a Solaris system
NUM_CORES=`LC_MESSAGES=C /usr/sbin/psrinfo -v | grep -c on-line`
FOUND_CORES=yes
- elif test -x /usr/sbin/system_profiler; then
+ elif test -x /usr/sbin/sysctl; then
# Looks like a MacOSX system
- NUM_CORES=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Cores' | awk '{print [$]5}'`
+ NUM_CORES=`/usr/sbin/sysctl -n hw.ncpu`
FOUND_CORES=yes
elif test "x$OPENJDK_BUILD_OS" = xaix ; then
NUM_CORES=`/usr/sbin/prtconf | grep "^Number Of Processors" | awk '{ print [$]4 }'`
@@ -74,10 +74,10 @@ AC_DEFUN([BPERF_CHECK_MEMORY_SIZE],
# Looks like a Solaris or AIX system
MEMORY_SIZE=`/usr/sbin/prtconf | grep "^Memory [[Ss]]ize" | awk '{ print [$]3 }'`
FOUND_MEM=yes
- elif test -x /usr/sbin/system_profiler; then
+ elif test -x /usr/sbin/sysctl; then
# Looks like a MacOSX system
- MEMORY_SIZE=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Memory' | awk '{print [$]2}'`
- MEMORY_SIZE=`expr $MEMORY_SIZE \* 1024`
+ MEMORY_SIZE=`/usr/sbin/sysctl -n hw.memsize`
+ MEMORY_SIZE=`expr $MEMORY_SIZE / 1024 / 1024`
FOUND_MEM=yes
elif test "x$OPENJDK_BUILD_OS" = xwindows; then
# Windows, but without cygwin
diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4
index 927bb522bcd..e6b8417241f 100644
--- a/common/autoconf/flags.m4
+++ b/common/autoconf/flags.m4
@@ -403,7 +403,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
CXXFLAGS_DEBUG_SYMBOLS="-g"
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
CFLAGS_DEBUG_SYMBOLS="-g -xs"
- # FIXME: likely a bug, this disables debug symbols rather than enables them
+ # -g0 enables debug symbols without disabling inlining.
CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
CFLAGS_DEBUG_SYMBOLS="-g"
@@ -425,7 +425,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
# Add runtime stack smashing and undefined behavior checks.
# Not all versions of gcc support -fstack-protector
STACK_PROTECTOR_CFLAG="-fstack-protector-all"
- FLAGS_COMPILER_CHECK_ARGUMENTS([$STACK_PROTECTOR_CFLAG], [], [STACK_PROTECTOR_CFLAG=""])
+ FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$STACK_PROTECTOR_CFLAG], IF_FALSE: [STACK_PROTECTOR_CFLAG=""])
CFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
CXXFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
@@ -501,7 +501,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
C_O_FLAG_HI="-O3 -qstrict"
C_O_FLAG_NORM="-O2"
C_O_FLAG_DEBUG="-qnoopt"
- C_O_FLAG_NONE="-qnoop"
+ C_O_FLAG_NONE="-qnoopt"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
C_O_FLAG_HIGHEST="-O2"
C_O_FLAG_HI="-O1"
@@ -742,7 +742,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
-I${JDK_TOPDIR}/src/java.base/share/native/include \
-I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS/native/include \
-I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/include \
- -I${JDK_TOPDIR}/src/java.base/share/native/libjava \
+ -I${JDK_TOPDIR}/src/java.base/share/native/libjava \
-I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/libjava"
# The shared libraries are compiled using the picflag.
@@ -896,17 +896,18 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
AC_SUBST(LDFLAGS_TESTEXE)
])
-# FLAGS_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
-# [RUN-IF-FALSE])
+# FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ARGUMENT], IF_TRUE: [RUN-IF-TRUE],
+# IF_FALSE: [RUN-IF-FALSE])
# ------------------------------------------------------------
# Check that the c and c++ compilers support an argument
-AC_DEFUN([FLAGS_COMPILER_CHECK_ARGUMENTS],
+BASIC_DEFUN_NAMED([FLAGS_COMPILER_CHECK_ARGUMENTS],
+ [*ARGUMENT IF_TRUE IF_FALSE], [$@],
[
- AC_MSG_CHECKING([if compiler supports "$1"])
+ AC_MSG_CHECKING([if compiler supports "ARG_ARGUMENT"])
supports=yes
saved_cflags="$CFLAGS"
- CFLAGS="$CFLAGS $1"
+ CFLAGS="$CFLAGS ARG_ARGUMENT"
AC_LANG_PUSH([C])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i;]])], [],
[supports=no])
@@ -914,7 +915,7 @@ AC_DEFUN([FLAGS_COMPILER_CHECK_ARGUMENTS],
CFLAGS="$saved_cflags"
saved_cxxflags="$CXXFLAGS"
- CXXFLAGS="$CXXFLAG $1"
+ CXXFLAGS="$CXXFLAG ARG_ARGUMENT"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i;]])], [],
[supports=no])
@@ -923,23 +924,26 @@ AC_DEFUN([FLAGS_COMPILER_CHECK_ARGUMENTS],
AC_MSG_RESULT([$supports])
if test "x$supports" = "xyes" ; then
- m4_ifval([$2], [$2], [:])
+ :
+ ARG_IF_TRUE
else
- m4_ifval([$3], [$3], [:])
+ :
+ ARG_IF_FALSE
fi
])
-# FLAGS_LINKER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
-# [RUN-IF-FALSE])
+# FLAGS_LINKER_CHECK_ARGUMENTS(ARGUMENT: [ARGUMENT], IF_TRUE: [RUN-IF-TRUE],
+# IF_FALSE: [RUN-IF-FALSE])
# ------------------------------------------------------------
# Check that the linker support an argument
-AC_DEFUN([FLAGS_LINKER_CHECK_ARGUMENTS],
+BASIC_DEFUN_NAMED([FLAGS_LINKER_CHECK_ARGUMENTS],
+ [*ARGUMENT IF_TRUE IF_FALSE], [$@],
[
- AC_MSG_CHECKING([if linker supports "$1"])
+ AC_MSG_CHECKING([if linker supports "ARG_ARGUMENT"])
supports=yes
saved_ldflags="$LDFLAGS"
- LDFLAGS="$LDFLAGS $1"
+ LDFLAGS="$LDFLAGS ARG_ARGUMENT"
AC_LANG_PUSH([C])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
[], [supports=no])
@@ -948,9 +952,11 @@ AC_DEFUN([FLAGS_LINKER_CHECK_ARGUMENTS],
AC_MSG_RESULT([$supports])
if test "x$supports" = "xyes" ; then
- m4_ifval([$2], [$2], [:])
+ :
+ ARG_IF_TRUE
else
- m4_ifval([$3], [$3], [:])
+ :
+ ARG_IF_FALSE
fi
])
@@ -965,14 +971,14 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_MISC],
*)
ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
esac
- FLAGS_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [], [ZERO_ARCHFLAG=""])
+ FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$ZERO_ARCHFLAG], IF_FALSE: [ZERO_ARCHFLAG=""])
AC_SUBST(ZERO_ARCHFLAG)
# Check that the compiler supports -mX (or -qX on AIX) flags
# Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does
- FLAGS_COMPILER_CHECK_ARGUMENTS([${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}],
- [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true],
- [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false])
+ FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}],
+ IF_TRUE: [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true],
+ IF_FALSE: [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false])
AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG)
AC_ARG_ENABLE([warnings-as-errors], [AS_HELP_STRING([--disable-warnings-as-errors],
@@ -1013,9 +1019,9 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_MISC],
;;
gcc)
# Prior to gcc 4.4, a -Wno-X where X is unknown for that version of gcc will cause an error
- FLAGS_COMPILER_CHECK_ARGUMENTS([-Wno-this-is-a-warning-that-do-not-exist],
- [GCC_CAN_DISABLE_WARNINGS=true],
- [GCC_CAN_DISABLE_WARNINGS=false]
+ FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [-Wno-this-is-a-warning-that-do-not-exist],
+ IF_TRUE: [GCC_CAN_DISABLE_WARNINGS=true],
+ IF_FALSE: [GCC_CAN_DISABLE_WARNINGS=false]
)
if test "x$GCC_CAN_DISABLE_WARNINGS" = "xtrue"; then
DISABLE_WARNING_PREFIX="-Wno-"
@@ -1026,9 +1032,9 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_MISC],
# Repeate the check for the BUILD_CC
CC_OLD="$CC"
CC="$BUILD_CC"
- FLAGS_COMPILER_CHECK_ARGUMENTS([-Wno-this-is-a-warning-that-do-not-exist],
- [BUILD_CC_CAN_DISABLE_WARNINGS=true],
- [BUILD_CC_CAN_DISABLE_WARNINGS=false]
+ FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [-Wno-this-is-a-warning-that-do-not-exist],
+ IF_TRUE: [BUILD_CC_CAN_DISABLE_WARNINGS=true],
+ IF_FALSE: [BUILD_CC_CAN_DISABLE_WARNINGS=false]
)
if test "x$BUILD_CC_CAN_DISABLE_WARNINGS" = "xtrue"; then
BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
index de0cce655ce..b3fe8760483 100644
--- a/common/autoconf/generated-configure.sh
+++ b/common/autoconf/generated-configure.sh
@@ -688,11 +688,11 @@ STATIC_CXX_SETTING
FIXPATH_DETACH_FLAG
FIXPATH
GCOV_ENABLED
-ZIP_DEBUGINFO_FILES
-ENABLE_DEBUG_SYMBOLS
STRIP_POLICY
DEBUG_BINARIES
-NATIVE_DEBUG_SYMBOLS
+ZIP_EXTERNAL_DEBUG_SYMBOLS
+COPY_DEBUG_SYMBOLS
+COMPILE_WITH_DEBUG_SYMBOLS
CFLAGS_WARNINGS_ARE_ERRORS
DISABLE_WARNING_PREFIX
HOTSPOT_SET_WARNINGS_AS_ERRORS
@@ -3451,6 +3451,31 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
# questions.
#
+# Create a function/macro that takes a series of named arguments. The call is
+# similar to AC_DEFUN, but the setup of the function looks like this:
+# BASIC_DEFUN_NAMED([MYFUNC], [FOO *BAR], [$@], [
+# ... do something
+# AC_MSG_NOTICE([Value of BAR is ARG_BAR])
+# ])
+# A star (*) in front of a named argument means that it is required and it's
+# presence will be verified. To pass e.g. the first value as a normal indexed
+# argument, use [m4_shift($@)] as the third argument instead of [$@]. These
+# arguments are referenced in the function by their name prefixed by ARG_, e.g.
+# "ARG_FOO".
+#
+# The generated function can be called like this:
+# MYFUNC(FOO: [foo-val], BAR:
+# [
+# $ECHO hello world
+# ])
+#
+#
+# Argument 1: Name of the function to define
+# Argument 2: List of legal named arguments, with a * prefix for required arguments
+# Argument 3: Argument array to treat as named, typically $@
+# Argument 4: The main function body
+
+
# Test if $1 is a valid argument to $3 (often is $JAVA passed as $3)
# If so, then append $1 to $2 \
# Also set JVM_ARG_OK to true/false depending on outcome.
@@ -3886,20 +3911,24 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-# FLAGS_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
-# [RUN-IF-FALSE])
+# FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ARGUMENT], IF_TRUE: [RUN-IF-TRUE],
+# IF_FALSE: [RUN-IF-FALSE])
# ------------------------------------------------------------
# Check that the c and c++ compilers support an argument
-# FLAGS_LINKER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
-# [RUN-IF-FALSE])
+
+
+# FLAGS_LINKER_CHECK_ARGUMENTS(ARGUMENT: [ARGUMENT], IF_TRUE: [RUN-IF-TRUE],
+# IF_FALSE: [RUN-IF-FALSE])
# ------------------------------------------------------------
# Check that the linker support an argument
+
+
#
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -4090,6 +4119,16 @@ pkgadd_help() {
+ # -g is already added by ENABLE_DEBUG_SYMBOLS and the hotspot makefiles
+ # will basically do slowdebug builds when DEBUG_BINARIES is set for
+ # fastdebug builds
+ DEBUG_BINARIES=false
+ # Fastdebug builds with this setting will essentially be slowdebug
+ # in hotspot.
+ # -g is already added by ENABLE_DEBUG_SYMBOLS and the hotspot makefiles
+ # will basically do slowdebug builds when DEBUG_BINARIES is set for
+ # fastdebug builds
+ DEBUG_BINARIES=false
#
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -4810,7 +4849,7 @@ VS_SDK_PLATFORM_NAME_2013=
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1452261921
+DATE_WHEN_GENERATED=1453410102
###############################################################################
#
@@ -14789,7 +14828,7 @@ test -n "$target_alias" &&
VAR_CPU_ENDIAN=big
;;
powerpc64le)
- VAR_CPU=ppc64
+ VAR_CPU=ppc64le
VAR_CPU_ARCH=ppc
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
@@ -14928,7 +14967,7 @@ $as_echo "$OPENJDK_BUILD_OS-$OPENJDK_BUILD_CPU" >&6; }
VAR_CPU_ENDIAN=big
;;
powerpc64le)
- VAR_CPU=ppc64
+ VAR_CPU=ppc64le
VAR_CPU_ARCH=ppc
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
@@ -45358,6 +45397,54 @@ $as_echo "$as_me: Rewriting BUILD_AR to \"$new_complete\"" >&6;}
# "-Og" suppported for GCC 4.8 and later
CFLAG_OPTIMIZE_DEBUG_FLAG="-Og"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ # Execute function body
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"$CFLAG_OPTIMIZE_DEBUG_FLAG\"" >&5
$as_echo_n "checking if compiler supports \"$CFLAG_OPTIMIZE_DEBUG_FLAG\"... " >&6; }
supports=yes
@@ -45417,15 +45504,76 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
$as_echo "$supports" >&6; }
if test "x$supports" = "xyes" ; then
+ :
HAS_CFLAG_OPTIMIZE_DEBUG=true
else
+ :
HAS_CFLAG_OPTIMIZE_DEBUG=false
fi
+
+
+
+
+
+
+
+
+
+
+
# "-z relro" supported in GNU binutils 2.17 and later
LINKER_RELRO_FLAG="-Wl,-z,relro"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ # Execute function body
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if linker supports \"$LINKER_RELRO_FLAG\"" >&5
$as_echo_n "checking if linker supports \"$LINKER_RELRO_FLAG\"... " >&6; }
supports=yes
@@ -45467,15 +45615,76 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
$as_echo "$supports" >&6; }
if test "x$supports" = "xyes" ; then
+ :
HAS_LINKER_RELRO=true
else
+ :
HAS_LINKER_RELRO=false
fi
+
+
+
+
+
+
+
+
+
+
+
# "-z now" supported in GNU binutils 2.11 and later
LINKER_NOW_FLAG="-Wl,-z,now"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ # Execute function body
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if linker supports \"$LINKER_NOW_FLAG\"" >&5
$as_echo_n "checking if linker supports \"$LINKER_NOW_FLAG\"... " >&6; }
supports=yes
@@ -45517,11 +45726,24 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
$as_echo "$supports" >&6; }
if test "x$supports" = "xyes" ; then
+ :
HAS_LINKER_NOW=true
else
+ :
HAS_LINKER_NOW=false
fi
+
+
+
+
+
+
+
+
+
+
+
fi
# Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed
@@ -46819,7 +47041,7 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
CXXFLAGS_DEBUG_SYMBOLS="-g"
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
CFLAGS_DEBUG_SYMBOLS="-g -xs"
- # FIXME: likely a bug, this disables debug symbols rather than enables them
+ # -g0 enables debug symbols without disabling inlining.
CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
CFLAGS_DEBUG_SYMBOLS="-g"
@@ -46842,6 +47064,49 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
# Not all versions of gcc support -fstack-protector
STACK_PROTECTOR_CFLAG="-fstack-protector-all"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ # Execute function body
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"$STACK_PROTECTOR_CFLAG\"" >&5
$as_echo_n "checking if compiler supports \"$STACK_PROTECTOR_CFLAG\"... " >&6; }
supports=yes
@@ -46902,11 +47167,24 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
$as_echo "$supports" >&6; }
if test "x$supports" = "xyes" ; then
:
+
else
+ :
STACK_PROTECTOR_CFLAG=""
fi
+
+
+
+
+
+
+
+
+
+
+
CFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
CXXFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
;;
@@ -46981,7 +47259,7 @@ $as_echo "$supports" >&6; }
C_O_FLAG_HI="-O3 -qstrict"
C_O_FLAG_NORM="-O2"
C_O_FLAG_DEBUG="-qnoopt"
- C_O_FLAG_NONE="-qnoop"
+ C_O_FLAG_NONE="-qnoopt"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
C_O_FLAG_HIGHEST="-O2"
C_O_FLAG_HI="-O1"
@@ -47384,6 +47662,49 @@ $as_echo "$supports" >&6; }
ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ # Execute function body
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"$ZERO_ARCHFLAG\"" >&5
$as_echo_n "checking if compiler supports \"$ZERO_ARCHFLAG\"... " >&6; }
supports=yes
@@ -47444,15 +47765,76 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
$as_echo "$supports" >&6; }
if test "x$supports" = "xyes" ; then
:
+
else
+ :
ZERO_ARCHFLAG=""
fi
+
+
+
+
+
+
+
+
+
+
+
# Check that the compiler supports -mX (or -qX on AIX) flags
# Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ # Execute function body
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"" >&5
$as_echo_n "checking if compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"... " >&6; }
supports=yes
@@ -47512,13 +47894,26 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
$as_echo "$supports" >&6; }
if test "x$supports" = "xyes" ; then
+ :
COMPILER_SUPPORTS_TARGET_BITS_FLAG=true
else
+ :
COMPILER_SUPPORTS_TARGET_BITS_FLAG=false
fi
+
+
+
+
+
+
+
+
+
+
+
# Check whether --enable-warnings-as-errors was given.
if test "${enable_warnings_as_errors+set}" = set; then :
enableval=$enable_warnings_as_errors;
@@ -47565,6 +47960,54 @@ $as_echo "yes (default)" >&6; }
gcc)
# Prior to gcc 4.4, a -Wno-X where X is unknown for that version of gcc will cause an error
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ # Execute function body
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"-Wno-this-is-a-warning-that-do-not-exist\"" >&5
$as_echo_n "checking if compiler supports \"-Wno-this-is-a-warning-that-do-not-exist\"... " >&6; }
supports=yes
@@ -47624,12 +48067,25 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
$as_echo "$supports" >&6; }
if test "x$supports" = "xyes" ; then
+ :
GCC_CAN_DISABLE_WARNINGS=true
else
+ :
GCC_CAN_DISABLE_WARNINGS=false
fi
+
+
+
+
+
+
+
+
+
+
+
if test "x$GCC_CAN_DISABLE_WARNINGS" = "xtrue"; then
DISABLE_WARNING_PREFIX="-Wno-"
else
@@ -47640,6 +48096,54 @@ $as_echo "$supports" >&6; }
CC_OLD="$CC"
CC="$BUILD_CC"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ # Execute function body
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"-Wno-this-is-a-warning-that-do-not-exist\"" >&5
$as_echo_n "checking if compiler supports \"-Wno-this-is-a-warning-that-do-not-exist\"... " >&6; }
supports=yes
@@ -47699,12 +48203,25 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
$as_echo "$supports" >&6; }
if test "x$supports" = "xyes" ; then
+ :
BUILD_CC_CAN_DISABLE_WARNINGS=true
else
+ :
BUILD_CC_CAN_DISABLE_WARNINGS=false
fi
+
+
+
+
+
+
+
+
+
+
+
if test "x$BUILD_CC_CAN_DISABLE_WARNINGS" = "xtrue"; then
BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
else
@@ -47764,21 +48281,31 @@ $as_echo "$NATIVE_DEBUG_SYMBOLS" >&6; }
fi
fi
- ENABLE_DEBUG_SYMBOLS=true
- ZIP_DEBUGINFO_FILES=true
- DEBUG_BINARIES=true
+ COMPILE_WITH_DEBUG_SYMBOLS=true
+ COPY_DEBUG_SYMBOLS=true
+ ZIP_EXTERNAL_DEBUG_SYMBOLS=true
+
+ # Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true
+ DEBUG_BINARIES=false
STRIP_POLICY=min_strip
+
elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then
- ENABLE_DEBUG_SYMBOLS=false
- ZIP_DEBUGINFO_FILES=false
+ COMPILE_WITH_DEBUG_SYMBOLS=false
+ COPY_DEBUG_SYMBOLS=false
+ ZIP_EXTERNAL_DEBUG_SYMBOLS=false
+
DEBUG_BINARIES=false
STRIP_POLICY=no_strip
elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then
- ENABLE_DEBUG_SYMBOLS=false # -g option only
- ZIP_DEBUGINFO_FILES=false
+ COMPILE_WITH_DEBUG_SYMBOLS=true
+ COPY_DEBUG_SYMBOLS=false
+ ZIP_EXTERNAL_DEBUG_SYMBOLS=false
+
+ # Hotspot legacy support, will turn on -g when COPY_DEBUG_SYMBOLS=false
DEBUG_BINARIES=true
STRIP_POLICY=no_strip
STRIP=""
+
elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
@@ -47789,9 +48316,12 @@ $as_echo "$NATIVE_DEBUG_SYMBOLS" >&6; }
fi
fi
- ENABLE_DEBUG_SYMBOLS=true
- ZIP_DEBUGINFO_FILES=false
- DEBUG_BINARIES=true
+ COMPILE_WITH_DEBUG_SYMBOLS=true
+ COPY_DEBUG_SYMBOLS=true
+ ZIP_EXTERNAL_DEBUG_SYMBOLS=false
+
+ # Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true
+ DEBUG_BINARIES=false
STRIP_POLICY=min_strip
else
as_fn_error $? "Allowed native debug symbols are: none, internal, external, zipped" "$LINENO" 5
@@ -47841,6 +48371,8 @@ $as_echo "$as_me: WARNING: Please use --with-native-debug-symbols=zipped ." >&2;
+ # Legacy values
+
@@ -58717,9 +59249,9 @@ $as_echo_n "checking for number of cores... " >&6; }
# Looks like a Solaris system
NUM_CORES=`LC_MESSAGES=C /usr/sbin/psrinfo -v | grep -c on-line`
FOUND_CORES=yes
- elif test -x /usr/sbin/system_profiler; then
+ elif test -x /usr/sbin/sysctl; then
# Looks like a MacOSX system
- NUM_CORES=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Cores' | awk '{print $5}'`
+ NUM_CORES=`/usr/sbin/sysctl -n hw.ncpu`
FOUND_CORES=yes
elif test "x$OPENJDK_BUILD_OS" = xaix ; then
NUM_CORES=`/usr/sbin/prtconf | grep "^Number Of Processors" | awk '{ print $4 }'`
@@ -58771,10 +59303,10 @@ $as_echo_n "checking for memory size... " >&6; }
# Looks like a Solaris or AIX system
MEMORY_SIZE=`/usr/sbin/prtconf | grep "^Memory [Ss]ize" | awk '{ print $3 }'`
FOUND_MEM=yes
- elif test -x /usr/sbin/system_profiler; then
+ elif test -x /usr/sbin/sysctl; then
# Looks like a MacOSX system
- MEMORY_SIZE=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Memory' | awk '{print $2}'`
- MEMORY_SIZE=`expr $MEMORY_SIZE \* 1024`
+ MEMORY_SIZE=`/usr/sbin/sysctl -n hw.memsize`
+ MEMORY_SIZE=`expr $MEMORY_SIZE / 1024 / 1024`
FOUND_MEM=yes
elif test "x$OPENJDK_BUILD_OS" = xwindows; then
# Windows, but without cygwin
@@ -61523,7 +62055,6 @@ fi
# Move configure.log from current directory to the build output root
if test -e ./configure.log; then
- echo found it
$MV -f ./configure.log "$OUTPUT_ROOT/configure.log" 2> /dev/null
fi
diff --git a/common/autoconf/hotspot-spec.gmk.in b/common/autoconf/hotspot-spec.gmk.in
index 86557031e0f..a5dc40b3d7f 100644
--- a/common/autoconf/hotspot-spec.gmk.in
+++ b/common/autoconf/hotspot-spec.gmk.in
@@ -118,7 +118,7 @@ USE_PRECOMPILED_HEADER=@USE_PRECOMPILED_HEADER@
# Hotspot expects the variable FULL_DEBUG_SYMBOLS=1/0 to control debug symbols
# creation.
-ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
+ifeq ($(COPY_DEBUG_SYMBOLS), true)
FULL_DEBUG_SYMBOLS=1
# Ensure hotspot uses the objcopy that configure located
ALT_OBJCOPY:=$(OBJCOPY)
@@ -127,12 +127,15 @@ else
endif
# Hotspot expects the variable ZIP_DEBUGINFO_FILES=1/0 and not true/false.
-ifeq ($(ZIP_DEBUGINFO_FILES)$(ENABLE_DEBUG_SYMBOLS), truetrue)
+ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), true)
ZIP_DEBUGINFO_FILES:=1
else
ZIP_DEBUGINFO_FILES:=0
endif
+DEBUG_BINARIES := @DEBUG_BINARIES@
+STRIP_POLICY := @STRIP_POLICY@
+
ifeq ($(OPENJDK_TARGET_OS), windows)
# On Windows, the Visual Studio toolchain needs the LIB and INCLUDE
# environment variables (in Windows path style).
diff --git a/common/autoconf/hotspot.m4 b/common/autoconf/hotspot.m4
index ec357f99572..e6849af3af4 100644
--- a/common/autoconf/hotspot.m4
+++ b/common/autoconf/hotspot.m4
@@ -266,3 +266,14 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_BUILD_TWEAKS],
HOTSPOT_MAKE_ARGS="$HOTSPOT_TARGET"
AC_SUBST(HOTSPOT_MAKE_ARGS)
])
+
+ # -g is already added by ENABLE_DEBUG_SYMBOLS and the hotspot makefiles
+ # will basically do slowdebug builds when DEBUG_BINARIES is set for
+ # fastdebug builds
+ DEBUG_BINARIES=false
+ # Fastdebug builds with this setting will essentially be slowdebug
+ # in hotspot.
+ # -g is already added by ENABLE_DEBUG_SYMBOLS and the hotspot makefiles
+ # will basically do slowdebug builds when DEBUG_BINARIES is set for
+ # fastdebug builds
+ DEBUG_BINARIES=false
\ No newline at end of file
diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4
index 5f9ffb2e006..e0a8c2762b7 100644
--- a/common/autoconf/jdk-options.m4
+++ b/common/autoconf/jdk-options.m4
@@ -251,21 +251,31 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
fi
fi
- ENABLE_DEBUG_SYMBOLS=true
- ZIP_DEBUGINFO_FILES=true
- DEBUG_BINARIES=true
+ COMPILE_WITH_DEBUG_SYMBOLS=true
+ COPY_DEBUG_SYMBOLS=true
+ ZIP_EXTERNAL_DEBUG_SYMBOLS=true
+
+ # Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true
+ DEBUG_BINARIES=false
STRIP_POLICY=min_strip
+
elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then
- ENABLE_DEBUG_SYMBOLS=false
- ZIP_DEBUGINFO_FILES=false
+ COMPILE_WITH_DEBUG_SYMBOLS=false
+ COPY_DEBUG_SYMBOLS=false
+ ZIP_EXTERNAL_DEBUG_SYMBOLS=false
+
DEBUG_BINARIES=false
STRIP_POLICY=no_strip
elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then
- ENABLE_DEBUG_SYMBOLS=false # -g option only
- ZIP_DEBUGINFO_FILES=false
+ COMPILE_WITH_DEBUG_SYMBOLS=true
+ COPY_DEBUG_SYMBOLS=false
+ ZIP_EXTERNAL_DEBUG_SYMBOLS=false
+
+ # Hotspot legacy support, will turn on -g when COPY_DEBUG_SYMBOLS=false
DEBUG_BINARIES=true
STRIP_POLICY=no_strip
STRIP=""
+
elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
@@ -276,9 +286,12 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
fi
fi
- ENABLE_DEBUG_SYMBOLS=true
- ZIP_DEBUGINFO_FILES=false
- DEBUG_BINARIES=true
+ COMPILE_WITH_DEBUG_SYMBOLS=true
+ COPY_DEBUG_SYMBOLS=true
+ ZIP_EXTERNAL_DEBUG_SYMBOLS=false
+
+ # Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true
+ DEBUG_BINARIES=false
STRIP_POLICY=min_strip
else
AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped])
@@ -294,11 +307,13 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
BASIC_DEPRECATED_ARG_ENABLE(zip-debug-info, zip_debug_info,
[Please use --with-native-debug-symbols=zipped .])
- AC_SUBST(NATIVE_DEBUG_SYMBOLS)
+ AC_SUBST(COMPILE_WITH_DEBUG_SYMBOLS)
+ AC_SUBST(COPY_DEBUG_SYMBOLS)
+ AC_SUBST(ZIP_EXTERNAL_DEBUG_SYMBOLS)
+
+ # Legacy values
AC_SUBST(DEBUG_BINARIES)
AC_SUBST(STRIP_POLICY)
- AC_SUBST(ENABLE_DEBUG_SYMBOLS)
- AC_SUBST(ZIP_DEBUGINFO_FILES)
])
################################################################################
diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4
index 203b6285a06..3b7e3e33e5d 100644
--- a/common/autoconf/platform.m4
+++ b/common/autoconf/platform.m4
@@ -67,7 +67,7 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU],
VAR_CPU_ENDIAN=big
;;
powerpc64le)
- VAR_CPU=ppc64
+ VAR_CPU=ppc64le
VAR_CPU_ARCH=ppc
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in
index 86b4761709a..e2a73d20ccf 100644
--- a/common/autoconf/spec.gmk.in
+++ b/common/autoconf/spec.gmk.in
@@ -424,13 +424,12 @@ CXX_FLAG_REORDER:=@CXX_FLAG_REORDER@
#
# Options for generating debug symbols
-ENABLE_DEBUG_SYMBOLS:=@ENABLE_DEBUG_SYMBOLS@
+COMPILE_WITH_DEBUG_SYMBOLS := @COMPILE_WITH_DEBUG_SYMBOLS@
+COPY_DEBUG_SYMBOLS := @COPY_DEBUG_SYMBOLS@
+ZIP_EXTERNAL_DEBUG_SYMBOLS := @ZIP_EXTERNAL_DEBUG_SYMBOLS@
+
CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
-ZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@
-NATIVE_DEBUG_SYMBOLS:=@NATIVE_DEBUG_SYMBOLS@
-DEBUG_BINARIES:=@DEBUG_BINARIES@
-STRIP_POLICY:=@STRIP_POLICY@
#
# Compress (or not) jars
diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
index 3f5750dcc89..4254d86a4fb 100644
--- a/common/autoconf/toolchain.m4
+++ b/common/autoconf/toolchain.m4
@@ -75,8 +75,8 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
# For full static builds, we're overloading the SHARED_LIBRARY
# variables in order to limit the amount of changes required.
# It would be better to remove SHARED and just use LIBRARY and
- # LIBRARY_SUFFIX for libraries that can be built either
- # shared or static and use STATIC_* for libraries that are
+ # LIBRARY_SUFFIX for libraries that can be built either
+ # shared or static and use STATIC_* for libraries that are
# always built statically.
if test "x$STATIC_BUILD" = xtrue; then
SHARED_LIBRARY='lib[$]1.a'
@@ -824,21 +824,21 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
# "-Og" suppported for GCC 4.8 and later
CFLAG_OPTIMIZE_DEBUG_FLAG="-Og"
- FLAGS_COMPILER_CHECK_ARGUMENTS([$CFLAG_OPTIMIZE_DEBUG_FLAG],
- [HAS_CFLAG_OPTIMIZE_DEBUG=true],
- [HAS_CFLAG_OPTIMIZE_DEBUG=false])
+ FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$CFLAG_OPTIMIZE_DEBUG_FLAG],
+ IF_TRUE: [HAS_CFLAG_OPTIMIZE_DEBUG=true],
+ IF_FALSE: [HAS_CFLAG_OPTIMIZE_DEBUG=false])
# "-z relro" supported in GNU binutils 2.17 and later
LINKER_RELRO_FLAG="-Wl,-z,relro"
- FLAGS_LINKER_CHECK_ARGUMENTS([$LINKER_RELRO_FLAG],
- [HAS_LINKER_RELRO=true],
- [HAS_LINKER_RELRO=false])
+ FLAGS_LINKER_CHECK_ARGUMENTS(ARGUMENT: [$LINKER_RELRO_FLAG],
+ IF_TRUE: [HAS_LINKER_RELRO=true],
+ IF_FALSE: [HAS_LINKER_RELRO=false])
# "-z now" supported in GNU binutils 2.11 and later
LINKER_NOW_FLAG="-Wl,-z,now"
- FLAGS_LINKER_CHECK_ARGUMENTS([$LINKER_NOW_FLAG],
- [HAS_LINKER_NOW=true],
- [HAS_LINKER_NOW=false])
+ FLAGS_LINKER_CHECK_ARGUMENTS(ARGUMENT: [$LINKER_NOW_FLAG],
+ IF_TRUE: [HAS_LINKER_NOW=true],
+ IF_FALSE: [HAS_LINKER_NOW=false])
fi
# Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed
diff --git a/common/bin/unshuffle_list.txt b/common/bin/unshuffle_list.txt
index e50fb3fe235..a419fe43a57 100644
--- a/common/bin/unshuffle_list.txt
+++ b/common/bin/unshuffle_list.txt
@@ -378,6 +378,7 @@ jdk/src/java.base/unix/conf/arm/jvm.cfg : jdk/src/solaris/bin/arm/jvm.cfg
jdk/src/java.base/unix/conf/i586/jvm.cfg : jdk/src/solaris/bin/i586/jvm.cfg
jdk/src/java.base/unix/conf/ia64/jvm.cfg : jdk/src/solaris/bin/ia64/jvm.cfg
jdk/src/java.base/unix/conf/ppc64/jvm.cfg : jdk/src/solaris/bin/ppc64/jvm.cfg
+jdk/src/java.base/unix/conf/ppc64le/jvm.cfg : jdk/src/solaris/bin/ppc64le/jvm.cfg
jdk/src/java.base/unix/conf/ppc/jvm.cfg : jdk/src/solaris/bin/ppc/jvm.cfg
jdk/src/java.base/unix/conf/sdp/sdp.conf.template : jdk/src/solaris/lib/sdp/sdp.conf.template
jdk/src/java.base/unix/conf/sparc/jvm.cfg : jdk/src/solaris/bin/sparc/jvm.cfg
diff --git a/common/conf/jib-profiles.js b/common/conf/jib-profiles.js
index 90d9621c6af..926fb9d5424 100644
--- a/common/conf/jib-profiles.js
+++ b/common/conf/jib-profiles.js
@@ -257,7 +257,7 @@ var getJibProfilesProfiles = function (input, common) {
target_os: "macosx",
target_cpu: "x64",
dependencies: concat(common.dependencies, "devkit"),
- configure_args: concat(common.configure_args, "--with-sdk-name=macosx10.9"),
+ configure_args: common.configure_args,
make_args: common.make_args
},
diff --git a/corba/.hgtags b/corba/.hgtags
index 4a5ada00d4a..d486a0a69bb 100644
--- a/corba/.hgtags
+++ b/corba/.hgtags
@@ -343,3 +343,5 @@ feb1bd85d7990dcf5584ca9e53104269c01db006 jdk-9+96
ea285530245cf4e0edf0479121a41347d3030eba jdk-9+98
180212ee1d8710691ba9944593dfc1ff3e4f1532 jdk-9+99
791d0d3ac0138faeb6110bd840a4545bc1950df2 jdk-9+100
+30dfb3bd3d06b4bb80a087babc0d1841edba187b jdk-9+101
+9c4662334d933d299928d1f599d02ff50777cbf8 jdk-9+102
diff --git a/corba/make/gensrc/Gensrc-java.corba.gmk b/corba/make/gensrc/Gensrc-java.corba.gmk
index 11e242afe32..608267e0df1 100644
--- a/corba/make/gensrc/Gensrc-java.corba.gmk
+++ b/corba/make/gensrc/Gensrc-java.corba.gmk
@@ -62,9 +62,9 @@ LOGWRAPPER_DIR := $(SUPPORT_OUTPUTDIR)/gensrc/java.corba/_logwrappers
$(EXCEPTION_DIR)/%SystemException.java: \
$(CORBA_TOPDIR)/src/java.corba/share/classes/com/sun/corba/se/spi/logging/data/%.mc \
$(BUILD_TOOLS_CORBA)
- $(MKDIR) -p $(@D)
+ $(call LogInfo, Generating class file from $*.mc)
+ $(call MakeDir, $(@D))
$(RM) -f $(@D)/_the_wrappers.d
- $(ECHO) $(LOG_INFO) Generating class file from $*.mc
$(TOOL_LOGUTIL_CMD) make-class $< $(@D)
# Generate LogWrapper properties file by concatening resource files
@@ -77,17 +77,17 @@ $(EXCEPTION_DIR)/LogStrings.properties: \
$(LOGWRAPPER_DIR)/ORBUtilSystemException.resource \
$(LOGWRAPPER_DIR)/POASystemException.resource \
$(LOGWRAPPER_DIR)/UtilSystemException.resource
- $(MKDIR) -p $(@D)
- $(ECHO) $(LOG_INFO) Concatenating 8 resource files into $(@F)
+ $(call LogInfo, Concatenating 8 resource files into $(@F))
+ $(call MakeDir, $(@D))
$(CAT) $^ > $@
# The resources files are generated from lisp-like .mc files.
$(LOGWRAPPER_DIR)/%SystemException.resource: \
$(CORBA_TOPDIR)/src/java.corba/share/classes/com/sun/corba/se/spi/logging/data/%.mc \
$(BUILD_TOOLS_CORBA)
- $(MKDIR) -p $(@D)
+ $(call LogInfo, Generating resource file from $*.mc)
+ $(call MakeDir, $(@D))
$(RM) -f $(@D)/_the_wrappers.d
- $(ECHO) $(LOG_INFO) Generating resource file from $*.mc
$(TOOL_LOGUTIL_CMD) make-resource $< $(@D)
@@ -240,4 +240,3 @@ $(SUPPORT_OUTPUTDIR)/gensrc/java.corba/com/sun/corba/se/impl/orbutil/resources/s
all: $(BUILD_IDLS) $(LOGWRAPPER_TARGETS) \
$(SUPPORT_OUTPUTDIR)/gensrc/java.corba/com/sun/corba/se/impl/orbutil/resources/sunorb_zh_HK.properties
-
diff --git a/hotspot/.hgtags b/hotspot/.hgtags
index 271e5408b1a..4731b6143c4 100644
--- a/hotspot/.hgtags
+++ b/hotspot/.hgtags
@@ -503,3 +503,5 @@ de592ea5f7ba0f8a8c5afc03bd169f7690c72b6f jdk-9+97
e5b1a23be1e105417ba1c4c576ab373eb3fa2c2b jdk-9+98
f008e8cc10d5b3212fb22d58c96fa01d38654f19 jdk-9+99
bdb0acafc63c42e84d9d8195bf2e2b25ee9c3306 jdk-9+100
+9f45d3d57d6948cf526fbc2e2891a9a74ac6941a jdk-9+101
+d5239fc1b69749ae50793c61b899fcdacf3df857 jdk-9+102
diff --git a/hotspot/.mx.jvmci/mx_jvmci.py b/hotspot/.mx.jvmci/mx_jvmci.py
index 0e3ac639bb3..d1069e6284c 100644
--- a/hotspot/.mx.jvmci/mx_jvmci.py
+++ b/hotspot/.mx.jvmci/mx_jvmci.py
@@ -677,12 +677,6 @@ class JVMCIArchiveParticipant:
assert service
self.services.setdefault(service, []).append(provider)
return True
- elif arcname.endswith('_OptionDescriptors.class'):
- # Need to create service files for the providers of the
- # jdk.vm.ci.options.Options service created by
- # jdk.vm.ci.options.processor.OptionProcessor.
- provider = arcname[:-len('.class'):].replace('/', '.')
- self.services.setdefault('jdk.vm.ci.options.OptionDescriptors', []).append(provider)
return False
def __addsrc__(self, arcname, contents):
@@ -761,21 +755,6 @@ class JVMCI9JDKConfig(mx.JDKConfig):
if jacocoArgs:
args = jacocoArgs + args
- # Support for -G: options
- def translateGOption(arg):
- if arg.startswith('-G:+'):
- if '=' in arg:
- mx.abort('Mixing + and = in -G: option specification: ' + arg)
- arg = '-Djvmci.option.' + arg[len('-G:+'):] + '=true'
- elif arg.startswith('-G:-'):
- if '=' in arg:
- mx.abort('Mixing - and = in -G: option specification: ' + arg)
- arg = '-Djvmci.option.' + arg[len('-G:+'):] + '=false'
- elif arg.startswith('-G:'):
- arg = '-Djvmci.option.' + arg[len('-G:'):]
- return arg
- args = map(translateGOption, args)
-
args = ['-Xbootclasspath/p:' + dep.classpath_repr() for dep in _jvmci_bootclasspath_prepends] + args
jvmciModeArgs = _jvmciModes[_vm.jvmciMode]
diff --git a/hotspot/.mx.jvmci/suite.py b/hotspot/.mx.jvmci/suite.py
index 3fd3a3cddc1..05d0027a8bb 100644
--- a/hotspot/.mx.jvmci/suite.py
+++ b/hotspot/.mx.jvmci/suite.py
@@ -109,7 +109,6 @@ suite = {
"jdk.vm.ci.code",
],
"checkstyle" : "jdk.vm.ci.service",
- "annotationProcessors" : ["JVMCI_OPTIONS_PROCESSOR"],
"javaCompliance" : "1.8",
"workingSets" : "API,JVMCI",
},
@@ -135,40 +134,17 @@ suite = {
"workingSets" : "JVMCI",
},
- "jdk.vm.ci.options" : {
- "subDir" : "src/jdk.vm.ci/share/classes",
- "sourceDirs" : ["src"],
- "checkstyle" : "jdk.vm.ci.service",
- "dependencies" : ["jdk.vm.ci.inittimer"],
- "javaCompliance" : "1.8",
- "workingSets" : "JVMCI",
- },
-
- "jdk.vm.ci.options.processor" : {
- "subDir" : "src/jdk.vm.ci/share/classes",
- "sourceDirs" : ["src"],
- "dependencies" : [
- "jdk.vm.ci.options",
- ],
- "checkstyle" : "jdk.vm.ci.service",
- "javaCompliance" : "1.8",
- "workingSets" : "JVMCI,Codegen",
- },
-
- "jdk.vm.ci.options.test" : {
- "subDir" : "test/compiler/jvmci",
- "sourceDirs" : ["src"],
- "dependencies" : [
- "jdk.vm.ci.options",
- "mx:JUNIT",
- ],
- "checkstyle" : "jdk.vm.ci.service",
- "javaCompliance" : "1.8",
- "workingSets" : "JVMCI",
- },
-
# ------------- JVMCI:HotSpot -------------
+ "jdk.vm.ci.aarch64" : {
+ "subDir" : "src/jdk.vm.ci/share/classes",
+ "sourceDirs" : ["src"],
+ "dependencies" : ["jdk.vm.ci.code"],
+ "checkstyle" : "jdk.vm.ci.service",
+ "javaCompliance" : "1.8",
+ "workingSets" : "JVMCI,AArch64",
+ },
+
"jdk.vm.ci.amd64" : {
"subDir" : "src/jdk.vm.ci/share/classes",
"sourceDirs" : ["src"],
@@ -191,15 +167,12 @@ suite = {
"subDir" : "src/jdk.vm.ci/share/classes",
"sourceDirs" : ["src"],
"dependencies" : [
- "jdk.vm.ci.options",
"jdk.vm.ci.hotspotvmconfig",
"jdk.vm.ci.common",
+ "jdk.vm.ci.inittimer",
"jdk.vm.ci.runtime",
"jdk.vm.ci.service",
],
- "annotationProcessors" : [
- "JVMCI_OPTIONS_PROCESSOR",
- ],
"checkstyle" : "jdk.vm.ci.service",
"javaCompliance" : "1.8",
"workingSets" : "JVMCI",
@@ -213,6 +186,21 @@ suite = {
"workingSets" : "JVMCI,HotSpot",
},
+ "jdk.vm.ci.hotspot.aarch64" : {
+ "subDir" : "src/jdk.vm.ci/share/classes",
+ "sourceDirs" : ["src"],
+ "dependencies" : [
+ "jdk.vm.ci.aarch64",
+ "jdk.vm.ci.hotspot",
+ ],
+ "checkstyle" : "jdk.vm.ci.service",
+ "annotationProcessors" : [
+ "JVMCI_SERVICE_PROCESSOR",
+ ],
+ "javaCompliance" : "1.8",
+ "workingSets" : "JVMCI,HotSpot,AArch64",
+ },
+
"jdk.vm.ci.hotspot.amd64" : {
"subDir" : "src/jdk.vm.ci/share/classes",
"sourceDirs" : ["src"],
@@ -258,22 +246,17 @@ suite = {
"dependencies" : ["jdk.vm.ci.service"],
},
- "JVMCI_OPTIONS" : {
- "subDir" : "src/jdk.vm.ci/share/classes",
- "dependencies" : ["jdk.vm.ci.options"],
- },
-
"JVMCI_API" : {
"subDir" : "src/jdk.vm.ci/share/classes",
"dependencies" : [
"jdk.vm.ci.inittimer",
"jdk.vm.ci.runtime",
"jdk.vm.ci.common",
+ "jdk.vm.ci.aarch64",
"jdk.vm.ci.amd64",
"jdk.vm.ci.sparc",
],
"distDependencies" : [
- "JVMCI_OPTIONS",
"JVMCI_SERVICE",
],
},
@@ -288,6 +271,7 @@ suite = {
"JVMCI_HOTSPOT" : {
"subDir" : "src/jdk.vm.ci/share/classes",
"dependencies" : [
+ "jdk.vm.ci.hotspot.aarch64",
"jdk.vm.ci.hotspot.amd64",
"jdk.vm.ci.hotspot.sparc",
],
@@ -301,7 +285,6 @@ suite = {
"JVMCI_TEST" : {
"subDir" : "test/compiler/jvmci",
"dependencies" : [
- "jdk.vm.ci.options.test",
"jdk.vm.ci.runtime.test",
],
"distDependencies" : [
@@ -310,13 +293,6 @@ suite = {
"exclude" : ["mx:JUNIT"],
},
- "JVMCI_OPTIONS_PROCESSOR" : {
- "subDir" : "src/jdk.vm.ci/share/classes",
- "dependencies" : ["jdk.vm.ci.options.processor"],
- "distDependencies" : [
- "JVMCI_OPTIONS",
- ],
- },
"JVMCI_SERVICE_PROCESSOR" : {
"subDir" : "src/jdk.vm.ci/share/classes",
@@ -332,25 +308,23 @@ suite = {
"subDir" : "src/jdk.vm.ci/share/classes",
"overlaps" : [
"JVMCI_API",
- "JVMCI_OPTIONS",
"JVMCI_SERVICE",
"JVMCI_HOTSPOT",
"JVMCI_HOTSPOTVMCONFIG",
"JVMCI_SERVICE_PROCESSOR",
- "JVMCI_OPTIONS_PROCESSOR"
],
"dependencies" : [
- "jdk.vm.ci.options",
"jdk.vm.ci.service",
"jdk.vm.ci.inittimer",
"jdk.vm.ci.runtime",
"jdk.vm.ci.common",
+ "jdk.vm.ci.aarch64",
"jdk.vm.ci.amd64",
"jdk.vm.ci.sparc",
"jdk.vm.ci.hotspotvmconfig",
+ "jdk.vm.ci.hotspot.aarch64",
"jdk.vm.ci.hotspot.amd64",
"jdk.vm.ci.hotspot.sparc",
- "jdk.vm.ci.options.processor",
"jdk.vm.ci.service.processor"
],
},
diff --git a/hotspot/agent/make/Makefile b/hotspot/agent/make/Makefile
deleted file mode 100644
index 9b5d03abc1e..00000000000
--- a/hotspot/agent/make/Makefile
+++ /dev/null
@@ -1,331 +0,0 @@
-#
-# Copyright (c) 2000, 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.
-#
-#
-
-# This guards against adding broken .java files to the directory
-# hierarchy, but may be a pain to keep in sync
-
-# Generated using the build-pkglist script
-ifeq "x$(GAMMADIR)" "x"
-include ../../make/defs.make
-else
-include $(GAMMADIR)/make/defs.make
-endif
-
-ifeq "x$(HOTSPOT_BUILD_VERSION)" "x"
-SA_BUILD_VERSION=$(HOTSPOT_RELEASE_VERSION)
-else
-SA_BUILD_VERSION=$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)
-endif
-
-PKGLIST = \
-sun.jvm.hotspot \
-sun.jvm.hotspot.asm \
-sun.jvm.hotspot.asm.sparc \
-sun.jvm.hotspot.c1 \
-sun.jvm.hotspot.ci \
-sun.jvm.hotspot.code \
-sun.jvm.hotspot.compiler \
-sun.jvm.hotspot.debugger \
-sun.jvm.hotspot.debugger.amd64 \
-sun.jvm.hotspot.debugger.bsd \
-sun.jvm.hotspot.debugger.bsd.amd64 \
-sun.jvm.hotspot.debugger.bsd.x86 \
-sun.jvm.hotspot.debugger.cdbg \
-sun.jvm.hotspot.debugger.cdbg.basic \
-sun.jvm.hotspot.debugger.cdbg.basic.amd64 \
-sun.jvm.hotspot.debugger.cdbg.basic.x86 \
-sun.jvm.hotspot.debugger.dummy \
-sun.jvm.hotspot.debugger.linux \
-sun.jvm.hotspot.debugger.linux.amd64 \
-sun.jvm.hotspot.debugger.linux.aarch64 \
-sun.jvm.hotspot.debugger.linux.ppc64 \
-sun.jvm.hotspot.debugger.linux.x86 \
-sun.jvm.hotspot.debugger.posix \
-sun.jvm.hotspot.debugger.posix.elf \
-sun.jvm.hotspot.debugger.ppc64 \
-sun.jvm.hotspot.debugger.proc \
-sun.jvm.hotspot.debugger.proc.amd64 \
-sun.jvm.hotspot.debugger.proc.aarch64 \
-sun.jvm.hotspot.debugger.proc.ppc64 \
-sun.jvm.hotspot.debugger.proc.sparc \
-sun.jvm.hotspot.debugger.proc.x86 \
-sun.jvm.hotspot.debugger.remote \
-sun.jvm.hotspot.debugger.remote.amd64 \
-sun.jvm.hotspot.debugger.remote.ppc64 \
-sun.jvm.hotspot.debugger.remote.sparc \
-sun.jvm.hotspot.debugger.remote.x86 \
-sun.jvm.hotspot.debugger.sparc \
-sun.jvm.hotspot.debugger.win32.coff \
-sun.jvm.hotspot.debugger.windbg \
-sun.jvm.hotspot.debugger.windbg.amd64 \
-sun.jvm.hotspot.debugger.windbg.x86 \
-sun.jvm.hotspot.debugger.x86 \
-sun.jvm.hotspot.gc \
-sun.jvm.hotspot.gc.g1 \
-sun.jvm.hotspot.gc.parallel \
-sun.jvm.hotspot.gc.shared \
-sun.jvm.hotspot.interpreter \
-sun.jvm.hotspot.jdi \
-sun.jvm.hotspot.memory \
-sun.jvm.hotspot.opto \
-sun.jvm.hotspot.oops \
-sun.jvm.hotspot.prims \
-sun.jvm.hotspot.runtime \
-sun.jvm.hotspot.runtime.amd64 \
-sun.jvm.hotspot.runtime.aarch64 \
-sun.jvm.hotspot.runtime.bsd \
-sun.jvm.hotspot.runtime.bsd_amd64 \
-sun.jvm.hotspot.runtime.bsd_x86 \
-sun.jvm.hotspot.runtime.linux \
-sun.jvm.hotspot.runtime.linux_amd64 \
-sun.jvm.hotspot.runtime.linux_aarch64 \
-sun.jvm.hotspot.runtime.linux_ppc64 \
-sun.jvm.hotspot.runtime.linux_sparc \
-sun.jvm.hotspot.runtime.linux_x86 \
-sun.jvm.hotspot.runtime.posix \
-sun.jvm.hotspot.runtime.ppc64 \
-sun.jvm.hotspot.runtime.solaris_amd64 \
-sun.jvm.hotspot.runtime.solaris_sparc \
-sun.jvm.hotspot.runtime.solaris_x86 \
-sun.jvm.hotspot.runtime.sparc \
-sun.jvm.hotspot.runtime.win32_amd64 \
-sun.jvm.hotspot.runtime.win32_x86 \
-sun.jvm.hotspot.runtime.x86 \
-sun.jvm.hotspot.tools \
-sun.jvm.hotspot.tools.jcore \
-sun.jvm.hotspot.tools.soql \
-sun.jvm.hotspot.types \
-sun.jvm.hotspot.types.basic \
-sun.jvm.hotspot.ui \
-sun.jvm.hotspot.ui.action \
-sun.jvm.hotspot.ui.classbrowser \
-sun.jvm.hotspot.ui.resources \
-sun.jvm.hotspot.ui.table \
-sun.jvm.hotspot.ui.tree \
-sun.jvm.hotspot.ui.treetable \
-sun.jvm.hotspot.utilities \
-sun.jvm.hotspot.utilities.memo \
-sun.jvm.hotspot.utilities.soql \
-com.sun.java.swing.action \
-com.sun.java.swing.ui
-#END PKGLIST
-
-# Generated using the build-filelist script
-FILELIST = \
-sun/jvm/hotspot/*.java \
-sun/jvm/hotspot/asm/*.java \
-sun/jvm/hotspot/asm/sparc/*.java \
-sun/jvm/hotspot/c1/*.java \
-sun/jvm/hotspot/ci/*.java \
-sun/jvm/hotspot/code/*.java \
-sun/jvm/hotspot/compiler/*.java \
-sun/jvm/hotspot/debugger/*.java \
-sun/jvm/hotspot/debugger/amd64/*.java \
-sun/jvm/hotspot/debugger/bsd/*.java \
-sun/jvm/hotspot/debugger/bsd/amd64/*.java \
-sun/jvm/hotspot/debugger/bsd/x86/*.java \
-sun/jvm/hotspot/debugger/cdbg/*.java \
-sun/jvm/hotspot/debugger/cdbg/basic/*.java \
-sun/jvm/hotspot/debugger/cdbg/basic/amd64/*.java \
-sun/jvm/hotspot/debugger/cdbg/basic/x86/*.java \
-sun/jvm/hotspot/debugger/dummy/*.java \
-sun/jvm/hotspot/debugger/linux/*.java \
-sun/jvm/hotspot/debugger/linux/ppc64/*.java \
-sun/jvm/hotspot/debugger/linux/x86/*.java \
-sun/jvm/hotspot/debugger/linux/aarch64/*.java \
-sun/jvm/hotspot/debugger/posix/*.java \
-sun/jvm/hotspot/debugger/posix/elf/*.java \
-sun/jvm/hotspot/debugger/ppc64/*.java \
-sun/jvm/hotspot/debugger/proc/*.java \
-sun/jvm/hotspot/debugger/proc/amd64/*.java \
-sun/jvm/hotspot/debugger/proc/aarch64/*.java \
-sun/jvm/hotspot/debugger/proc/ppc64/*.java \
-sun/jvm/hotspot/debugger/proc/sparc/*.java \
-sun/jvm/hotspot/debugger/proc/x86/*.java \
-sun/jvm/hotspot/debugger/remote/*.java \
-sun/jvm/hotspot/debugger/remote/amd64/*.java \
-sun/jvm/hotspot/debugger/remote/aarch64/*.java \
-sun/jvm/hotspot/debugger/remote/ppc64/*.java \
-sun/jvm/hotspot/debugger/remote/sparc/*.java \
-sun/jvm/hotspot/debugger/remote/x86/*.java \
-sun/jvm/hotspot/debugger/sparc/*.java \
-sun/jvm/hotspot/debugger/win32/coff/*.java \
-sun/jvm/hotspot/debugger/windbg/*.java \
-sun/jvm/hotspot/debugger/windbg/x86/*.java \
-sun/jvm/hotspot/debugger/x86/*.java \
-sun/jvm/hotspot/gc/g1/*.java \
-sun/jvm/hotspot/gc/parallel/*.java \
-sun/jvm/hotspot/gc/shared/*.java \
-sun/jvm/hotspot/interpreter/*.java \
-sun/jvm/hotspot/jdi/*.java \
-sun/jvm/hotspot/memory/*.java \
-sun/jvm/hotspot/oops/*.java \
-sun/jvm/hotspot/opto/*.java \
-sun/jvm/hotspot/prims/*.java \
-sun/jvm/hotspot/runtime/*.java \
-sun/jvm/hotspot/runtime/amd64/*.java \
-sun/jvm/hotspot/runtime/aarch64/*.java \
-sun/jvm/hotspot/runtime/bsd/*.java \
-sun/jvm/hotspot/runtime/bsd_amd64/*.java \
-sun/jvm/hotspot/runtime/bsd_x86/*.java \
-sun/jvm/hotspot/runtime/linux/*.java \
-sun/jvm/hotspot/runtime/linux_amd64/*.java \
-sun/jvm/hotspot/runtime/linux_aarch64/*.java \
-sun/jvm/hotspot/runtime/linux_ppc64/*.java \
-sun/jvm/hotspot/runtime/linux_sparc/*.java \
-sun/jvm/hotspot/runtime/linux_x86/*.java \
-sun/jvm/hotspot/runtime/posix/*.java \
-sun/jvm/hotspot/runtime/ppc64/*.java \
-sun/jvm/hotspot/runtime/solaris_amd64/*.java \
-sun/jvm/hotspot/runtime/solaris_sparc/*.java \
-sun/jvm/hotspot/runtime/solaris_x86/*.java \
-sun/jvm/hotspot/runtime/sparc/*.java \
-sun/jvm/hotspot/runtime/win32_amd64/*.java \
-sun/jvm/hotspot/runtime/win32_x86/*.java \
-sun/jvm/hotspot/runtime/x86/*.java \
-sun/jvm/hotspot/tools/*.java \
-sun/jvm/hotspot/tools/jcore/*.java \
-sun/jvm/hotspot/tools/soql/*.java \
-sun/jvm/hotspot/types/*.java \
-sun/jvm/hotspot/types/basic/*.java \
-sun/jvm/hotspot/ui/*.java \
-sun/jvm/hotspot/ui/action/*.java \
-sun/jvm/hotspot/ui/classbrowser/*.java \
-sun/jvm/hotspot/ui/table/*.java \
-sun/jvm/hotspot/ui/tree/*.java \
-sun/jvm/hotspot/ui/treetable/*.java \
-sun/jvm/hotspot/utilities/*.java \
-sun/jvm/hotspot/utilities/memo/*.java \
-sun/jvm/hotspot/utilities/soql/*.java \
-com/sun/java/swing/action/*.java \
-com/sun/java/swing/ui/*.java
-#END FILELIST
-
-ifneq "x$(ALT_BOOTDIR)" "x"
- BOOTDIR := $(ALT_BOOTDIR)
-endif
-
-ifeq "x$(BOOTDIR)" "x"
- JDK_HOME := $(shell dirname $(shell which java))/..
-else
- JDK_HOME := $(BOOTDIR)
-endif
-
-isUnix := $(shell test -r c:/; echo $$?)
-
-ifeq "$(isUnix)" "1"
- CPS := :
-else
- CPS := ";"
-endif
-
-SRC_DIR = ../src/share/classes
-BUILD_DIR = ../build
-OUTPUT_DIR = $(BUILD_DIR)/classes
-DOC_DIR = $(BUILD_DIR)/doc
-
-# gnumake 3.78.1 does not accept the *s,
-# so use the shell to expand them
-ALLFILES := $(patsubst %,$(SRC_DIR)/%,$(FILELIST))
-ALLFILES := $(shell /bin/ls $(ALLFILES))
-
-# tools.jar is used by the sa-jdi binding
-CLASSPATH = $(JDK_HOME)/lib/tools.jar
-
-CLASSPATH := $(subst \,/,$(CLASSPATH))
-
-# FIXME: autogenerate call to rmic
-
-SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)"
-
-SA_PROPERTIES = $(OUTPUT_DIR)/sa.properties
-JAVAC = $(JDK_HOME)/bin/javac
-JAVA = $(JDK_HOME)/bin/java
-JAVADOC = $(JDK_HOME)/bin/javadoc
-RMIC = $(JDK_HOME)/bin/rmic
-
-# Tagging it on because there's no reason not to run it
-all: filelist
- @mkdir -p $(OUTPUT_DIR)
- @echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
- $(JAVAC) -classpath $(CLASSPATH) -deprecation -sourcepath $(SRC_DIR) -g -d $(OUTPUT_DIR) @filelist
- $(RMIC) -classpath $(OUTPUT_DIR) -d $(OUTPUT_DIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
- rm -f $(OUTPUT_DIR)/sun/jvm/hotspot/utilities/soql/sa.js
- cp $(SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(OUTPUT_DIR)/sun/jvm/hotspot/utilities/soql
- mkdir -p $(OUTPUT_DIR)/sun/jvm/hotspot/ui/resources
- rm -f $(OUTPUT_DIR)/sun/jvm/hotspot/ui/resources/*
- cp $(SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(OUTPUT_DIR)/sun/jvm/hotspot/ui/resources/
- cp -r $(SRC_DIR)/images/* $(OUTPUT_DIR)/
-
-allprof: filelist
- @mkdir -p $(OUTPUT_DIR)
- @echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
- $(JAVAC) -J-Xprof -classpath $(CLASSPATH) -deprecation -sourcepath $(SRC_DIR) -g -d $(OUTPUT_DIR) @filelist
- $(RMIC) -classpath $(OUTPUT_DIR) -d $(OUTPUT_DIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
- rm -f $(OUTPUT_DIR)/sun/jvm/hotspot/utilities/soql/sa.js
- cp $(SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(OUTPUT_DIR)/sun/jvm/hotspot/utilities/soql
- mkdir -p $(OUTPUT_DIR)/sun/jvm/hotspot/ui/resources
- rm -f $(OUTPUT_DIR)/sun/jvm/hotspot/ui/resources/*
- cp $(SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(OUTPUT_DIR)/sun/jvm/hotspot/ui/resources/
- cp -r $(SRC_DIR)/images/* $(OUTPUT_DIR)/
-
-.PHONY: filelist
-filelist: $(ALLFILES)
- @if [ ! -f $(JDK_HOME)/lib/tools.jar ] ; then \
- echo "Missing $(JDK_HOME)/lib/tools.jar file. Use 1.6.0 or later version jdk to build SA."; \
- echo ""; \
- exit 1; \
- fi
- @rm -f $@
- @echo $(ALLFILES) > $@
-
-.PHONY: natives
-natives:
- cd ../src/os/`$(JAVA) -classpath $(OUTPUT_DIR) sun.jvm.hotspot.utilities.PlatformInfo`; $(MAKE) all
-
-.PHONY: sa-jdi.jar
-sa-jdi.jar:
- echo "sa-jdi.jar is built by a hotspot build."
-
-docs:
- @$(JAVADOC) -private -classpath $(CLASSPATH) -sourcepath $(SRC_DIR) -d $(DOC_DIR) $(PKGLIST)
-
-sizes: $(ALLFILES)
- wc -l $(ALLFILES)
-
-cscope: $(ALLFILES)
- rm -f java.files
- echo $(ALLFILES) > java.files
- cscope -b -i java.files -f java.out
- rm -f java.files
-
-.PHONY: sa.jar
-sa.jar:
- rm -f $(BUILD_DIR)/sa.jar
- cd $(OUTPUT_DIR) ; jar cvf ../sa.jar *
-
-clean::
- rm -rf filelist
- cd ../src/os/`$(JAVA) -classpath $(OUTPUT_DIR) sun.jvm.hotspot.utilities.PlatformInfo`; $(MAKE) clean
- rm -rf $(BUILD_DIR)/*
diff --git a/hotspot/agent/make/README.txt b/hotspot/agent/make/README.txt
deleted file mode 100644
index 1ceb26b9339..00000000000
--- a/hotspot/agent/make/README.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-These are the Java-level sources for the Serviceability Agent (SA).
-
-To build, type "gnumake all".
-
-For usage documentation, please refer to ../doc/index.html.
diff --git a/hotspot/agent/make/build-filelist b/hotspot/agent/make/build-filelist
deleted file mode 100644
index 34bd51422c8..00000000000
--- a/hotspot/agent/make/build-filelist
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh -f
-
-SH=`which sh`
-MKS_HOME=`dirname $SH`
-
-CD=cd
-FIND=$MKS_HOME/find
-SORT=$MKS_HOME/sort
-
-$CD ../src/share/classes; $FIND sun \( -name SCCS -prune \) -o \( -name "*.java" \) -print | $SORT > ../../../make/filelist.txt
diff --git a/hotspot/agent/make/build-pkglist b/hotspot/agent/make/build-pkglist
deleted file mode 100644
index c7cac3dfc05..00000000000
--- a/hotspot/agent/make/build-pkglist
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh -f
-
-SH=`which sh`
-MKS_HOME=`dirname $SH`
-
-CD=cd
-FIND=$MKS_HOME/find
-SED=$MKS_HOME/sed
-SORT=$MKS_HOME/sort
-
-$CD ../src/share/classes; $FIND sun/jvm/hotspot com/sun/java/swing -type d -print | $SED -e 's/\//./g' | $SORT > ../../../make/pkglist.txt
diff --git a/hotspot/agent/make/build.xml b/hotspot/agent/make/build.xml
deleted file mode 100644
index 71bfc5ba18b..00000000000
--- a/hotspot/agent/make/build.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hotspot/agent/make/clhsdbproc.sh b/hotspot/agent/make/clhsdbproc.sh
deleted file mode 100644
index d3f4db0621b..00000000000
--- a/hotspot/agent/make/clhsdbproc.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2005, 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.
-#
-#
-
-
-. `dirname $0`/saenv.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.CLHSDB $*
diff --git a/hotspot/agent/make/clhsdbproc64.sh b/hotspot/agent/make/clhsdbproc64.sh
deleted file mode 100644
index 66d8e26fa8a..00000000000
--- a/hotspot/agent/make/clhsdbproc64.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2005, 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.
-#
-#
-
-
-. `dirname $0`/saenv64.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.CLHSDB $*
diff --git a/hotspot/agent/make/clhsdbwindbg.bat b/hotspot/agent/make/clhsdbwindbg.bat
deleted file mode 100644
index a1ba120a135..00000000000
--- a/hotspot/agent/make/clhsdbwindbg.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-@echo off
-
-REM
-REM Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.CLHSDB %1 %2
diff --git a/hotspot/agent/make/clhsdbwindbg64.bat b/hotspot/agent/make/clhsdbwindbg64.bat
deleted file mode 100644
index 442a3ba89d1..00000000000
--- a/hotspot/agent/make/clhsdbwindbg64.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-@echo off
-
-REM
-REM Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv64.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.CLHSDB %1 %2
diff --git a/hotspot/agent/make/dumpflagsproc.sh b/hotspot/agent/make/dumpflagsproc.sh
deleted file mode 100644
index 88b1072dd00..00000000000
--- a/hotspot/agent/make/dumpflagsproc.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2002, 2003, 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.
-#
-#
-
-. `dirname $0`/saenv.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.FlagDumper $*
diff --git a/hotspot/agent/make/dumpflagsproc64.sh b/hotspot/agent/make/dumpflagsproc64.sh
deleted file mode 100644
index 31b1204f56a..00000000000
--- a/hotspot/agent/make/dumpflagsproc64.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2002, 2003, 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.
-#
-#
-
-. `dirname $0`/saenv64.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.FlagDumper $*
diff --git a/hotspot/agent/make/dumpflagswindbg.bat b/hotspot/agent/make/dumpflagswindbg.bat
deleted file mode 100644
index 6ae97409c63..00000000000
--- a/hotspot/agent/make/dumpflagswindbg.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.FlagDumper %1 %2
diff --git a/hotspot/agent/make/dumpflagswindbg64.bat b/hotspot/agent/make/dumpflagswindbg64.bat
deleted file mode 100644
index c5c1a3bb97f..00000000000
--- a/hotspot/agent/make/dumpflagswindbg64.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv64.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.FlagDumper %1 %2
diff --git a/hotspot/agent/make/dumpsyspropsproc.sh b/hotspot/agent/make/dumpsyspropsproc.sh
deleted file mode 100644
index 2f8d892ed16..00000000000
--- a/hotspot/agent/make/dumpsyspropsproc.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2002, 2003, 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.
-#
-#
-
-. `dirname $0`/saenv.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.SysPropsDumper $*
-
diff --git a/hotspot/agent/make/dumpsyspropsproc64.sh b/hotspot/agent/make/dumpsyspropsproc64.sh
deleted file mode 100644
index 3967bbed119..00000000000
--- a/hotspot/agent/make/dumpsyspropsproc64.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2002, 2003, 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.
-#
-#
-
-. `dirname $0`/saenv64.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.SysPropsDumper $*
diff --git a/hotspot/agent/make/dumpsyspropswindbg.bat b/hotspot/agent/make/dumpsyspropswindbg.bat
deleted file mode 100644
index 4f6c1994118..00000000000
--- a/hotspot/agent/make/dumpsyspropswindbg.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.SysPropsDumper %1 %2
diff --git a/hotspot/agent/make/dumpsyspropswindbg64.bat b/hotspot/agent/make/dumpsyspropswindbg64.bat
deleted file mode 100644
index 91f90c54d79..00000000000
--- a/hotspot/agent/make/dumpsyspropswindbg64.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv64.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.SysPropsDumper %1 %2
diff --git a/hotspot/agent/make/finalizerinfoproc.sh b/hotspot/agent/make/finalizerinfoproc.sh
deleted file mode 100644
index 94d064ebbef..00000000000
--- a/hotspot/agent/make/finalizerinfoproc.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2004, 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.
-#
-#
-
-. `dirname $0`/saenv.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.FinalizerInfo $*
diff --git a/hotspot/agent/make/finalizerinfoproc64.sh b/hotspot/agent/make/finalizerinfoproc64.sh
deleted file mode 100644
index 58b4369fa4a..00000000000
--- a/hotspot/agent/make/finalizerinfoproc64.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2004, 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.
-#
-#
-
-. `dirname $0`/saenv64.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.FinalizerInfo $*
diff --git a/hotspot/agent/make/finalizerinfowindbg.bat b/hotspot/agent/make/finalizerinfowindbg.bat
deleted file mode 100644
index 5d529885766..00000000000
--- a/hotspot/agent/make/finalizerinfowindbg.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.FinalizerInfo %1 %2
diff --git a/hotspot/agent/make/finalizerinfowindbg64.bat b/hotspot/agent/make/finalizerinfowindbg64.bat
deleted file mode 100644
index be306c65bea..00000000000
--- a/hotspot/agent/make/finalizerinfowindbg64.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv64.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.FinalizerInfo %1 %2
diff --git a/hotspot/agent/make/grantAll.policy b/hotspot/agent/make/grantAll.policy
deleted file mode 100644
index ae67772f74e..00000000000
--- a/hotspot/agent/make/grantAll.policy
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// Copyright (c) 2000, 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.
-//
-//
-
-// Do NOT use this policy file in a production system!
-
-grant {
- // Allow everything for now
- permission java.security.AllPermission;
-};
diff --git a/hotspot/agent/make/heapdumpproc.sh b/hotspot/agent/make/heapdumpproc.sh
deleted file mode 100644
index 44c7f18b7a3..00000000000
--- a/hotspot/agent/make/heapdumpproc.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2004, 2005, 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.
-#
-#
-
-
-. `dirname $0`/saenv.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.HeapDumper $*
diff --git a/hotspot/agent/make/heapdumpproc64.sh b/hotspot/agent/make/heapdumpproc64.sh
deleted file mode 100644
index d68ad2e6a3d..00000000000
--- a/hotspot/agent/make/heapdumpproc64.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2004, 2005, 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.
-#
-#
-
-
-. `dirname $0`/saenv64.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.HeapDumper $*
-
diff --git a/hotspot/agent/make/heapdumpwindbg.bat b/hotspot/agent/make/heapdumpwindbg.bat
deleted file mode 100644
index a7b3b0d18ee..00000000000
--- a/hotspot/agent/make/heapdumpwindbg.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-@echo off
-
-REM
-REM Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.HeapDumper %1 %2 %3 %4
diff --git a/hotspot/agent/make/heapdumpwindbg64.bat b/hotspot/agent/make/heapdumpwindbg64.bat
deleted file mode 100644
index f648a10b05d..00000000000
--- a/hotspot/agent/make/heapdumpwindbg64.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-@echo off
-
-REM
-REM Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv64.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.HeapDumper %1 %2 %3 %4
diff --git a/hotspot/agent/make/heapsumproc.sh b/hotspot/agent/make/heapsumproc.sh
deleted file mode 100644
index 787e791ce2d..00000000000
--- a/hotspot/agent/make/heapsumproc.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2003, 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.
-#
-#
-
-. `dirname $0`/saenv.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.HeapSummary $*
diff --git a/hotspot/agent/make/heapsumproc64.sh b/hotspot/agent/make/heapsumproc64.sh
deleted file mode 100644
index 3915260a3b0..00000000000
--- a/hotspot/agent/make/heapsumproc64.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2003, 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.
-#
-#
-
-. `dirname $0`/saenv64.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.HeapSummary $*
diff --git a/hotspot/agent/make/heapsumwindbg.bat b/hotspot/agent/make/heapsumwindbg.bat
deleted file mode 100644
index ab468509e88..00000000000
--- a/hotspot/agent/make/heapsumwindbg.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.HeapSummary %1 %2
diff --git a/hotspot/agent/make/heapsumwindbg64.bat b/hotspot/agent/make/heapsumwindbg64.bat
deleted file mode 100644
index e887cbb5064..00000000000
--- a/hotspot/agent/make/heapsumwindbg64.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv64.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.HeapSummary %1 %2
diff --git a/hotspot/agent/make/hsdb.bat b/hotspot/agent/make/hsdb.bat
deleted file mode 100644
index 92a2c1d683d..00000000000
--- a/hotspot/agent/make/hsdb.bat
+++ /dev/null
@@ -1,25 +0,0 @@
-REM
-REM Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-java -showversion -cp ..\build\classes;..\src\share\lib\js.jar;.\sa.jar;lib\js.jar sun.jvm.hotspot.HSDB %1 %2
diff --git a/hotspot/agent/make/hsdb.sh b/hotspot/agent/make/hsdb.sh
deleted file mode 100644
index ffb07fe246e..00000000000
--- a/hotspot/agent/make/hsdb.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2002, 2008, 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.
-#
-#
-
-STARTDIR=`dirname $0`
-
-if [ "x$SA_JAVA" = "x" ]; then
- SA_JAVA=java
-fi
-
-$SA_JAVA -showversion -cp $STARTDIR/../build/classes:$STARTDIR/../src/share/lib/js.jar:$STARTDIR/sa.jar:$STARTDIR/lib/js.jar sun.jvm.hotspot.HSDB $*
diff --git a/hotspot/agent/make/hsdbproc.sh b/hotspot/agent/make/hsdbproc.sh
deleted file mode 100644
index 29a0e220806..00000000000
--- a/hotspot/agent/make/hsdbproc.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2002, 2003, 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.
-#
-#
-
-. `dirname $0`/saenv.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.HSDB $*
diff --git a/hotspot/agent/make/hsdbproc64.sh b/hotspot/agent/make/hsdbproc64.sh
deleted file mode 100644
index 5e79a967142..00000000000
--- a/hotspot/agent/make/hsdbproc64.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2002, 2003, 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.
-#
-#
-
-. `dirname $0`/saenv64.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.HSDB $*
diff --git a/hotspot/agent/make/hsdbwindbg.bat b/hotspot/agent/make/hsdbwindbg.bat
deleted file mode 100644
index 4cb1f5e917a..00000000000
--- a/hotspot/agent/make/hsdbwindbg.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.HSDB %1 %2
diff --git a/hotspot/agent/make/hsdbwindbg64.bat b/hotspot/agent/make/hsdbwindbg64.bat
deleted file mode 100644
index 0f6c01576c2..00000000000
--- a/hotspot/agent/make/hsdbwindbg64.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv64.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.HSDB %1 %2
diff --git a/hotspot/agent/make/index.html b/hotspot/agent/make/index.html
deleted file mode 100644
index 436daaa2b8c..00000000000
--- a/hotspot/agent/make/index.html
+++ /dev/null
@@ -1,262 +0,0 @@
-
-
-
-
-The HotSpot Serviceability Agent (SA) is a set of Java APIs which
-mirror the internal APIs of the HotSpot VM and which can be used to
-examine the state of a HotSpot VM.
-
-
-
-The system understands the layout of certain VM data structures and is
-able to traverse these structures in an examination-only fashion; that
-is, it does not rely on being able to run code in the target VM. For
-this reason it transparently works with either a running VM or a core
-file.
-
-
-
-The system can reconstruct information about Java frames on the stack
-and objects in the heap. Many of the important data structures in the
-VM like the CodeCache, Universe, StubQueue, Frames, and VFrames have
-been exposed and have relatively complete (or at least useful)
-implementations.
-
-
-
-A small graphical debugger called HSDB (the "HotSpot Debugger") has
-been written using these APIs. It provides stack memory dumps
-annotated with method invocations, compiled-code inlining (if
-present), interpreted vs. compiled code, interpreter codelets (if
-interpreted), and live oops from oop-map information. It also provides
-a tree-based oop inspector. More information will be added as
-necessary; please send
-email with suggestions on what would be useful.
-
-
-
-The SA currently only works on Solaris. It uses dbx to connect to the
-remote process or core file and communicates with a small piece of
-code (an "import module") loaded into the debugger.
-
-The Java-side source code, which is the bulk of the SA, is in
-src/share/vm/agent. The organization of the sun.jvm.hotspot package
-hierarchy mirrors the organization in the VM. This should allow
-engineers familiar with the HotSpot sources to quickly understand how
-the SA works and to make modifications if necessary. To build these
-sources, cd to src/share/vm/agent and type "make".
-
-
-
-
-The SA on Solaris works by communicating with a small piece of code
-(an "import module") loaded into dbx. The source code for this import
-module is in src/os/solaris/agent. To build this library, cd to
-src/os/solaris/agent and type "make 32bit" or "make 64bit". The
-distinction is necessary because the SPARC version of dbx ships with
-two versions of its executable, and depending on which architecture
-(v8 or v9) the debugger is running on selects the appropriate
-executable. The SA tries the v8 version first, but if you are running
-on a v9 machine you must provide both versions to the SA.
-
-
-
-
-The system is currently hardwired to look on jano for its dbx
-executable and import module. The relevant directory structure looks
-like this:
-
-
-
.../hotspot/sa/
-
-
solaris/
-
-
sparc/
-
-
bin/
-
-
dbx: symlink to (v8) dbx 7.0 executable
-
-
-
-
lib/
-
-
libsvc_agent_dbx.so: 32-bit version of import module
-
-
-
sparcv9/
-
-
lib/
-
-
libsvc_agent_dbx.so: 32-bit version of import module
-
-
-
-
-
-
-
-
-The code which builds up path names to these executables is contained
-in sun.jvm.hotspot.HotSpotAgent.java. There are hardcoded paths in
-this file to jano, but the rest of the system is isolated from this.
-
-
-
-(It would be nice to have a panel in the debugger allowing
-configuration of all of the known operating systems' options; right
-now Solaris is the only supported OS, making that easier.)
-
-An installation of HSDB has been placed on jano. To access it, add the
-following directory to your PATH:
-
-
-
-
- /net/jano/export/disk05/hotspot/sa/bin/common
-
-
-
-
-To start the debugger, type "hsdb".
-
-
-
-Alternatively, you can start a local build of the debugger by building
-the sources in src/share/vm/agent, cd'ing to that directory, and
-typing "java sun.jvm.hotspot.HSDB".
-
-
-
-There are three modes for the debugger: attaching to a local process,
-opening a core file, and attaching to a remote "debug server". The
-remote case requires two programs to be running on the remote machine:
-the rmiregistry (see the script "start-rmiregistry" in this directory;
-run this in the background) and the debug server (see the script
-"start-debug-server"), in that order. start-rmiregistry takes no
-arguments; start-debug-server takes as argument the process ID or the
-executable and core file names to allow remote debugging of. Make sure
-you do NOT have a CLASSPATH environment variable set when you run
-these scripts. (The classes put into the rmiregistry are in sun.*, and
-there are permissions problems if they aren't placed on the boot
-classpath.)
-
-
-
-NOTE that the SA currently only works against VMs on Solaris/SPARC.
-Remote debugging of Solaris/SPARC VMs on arbitrary platforms is
-possible using the debug server; select "Connect to debug server..."
-in HSDB.
-
-
-
-Once the debugger has been launched, the threads list is displayed.
-The current set of functionality allows:
-
-
-
-
Browsing of the annotated stack memory ("Stack Memory" button). It
- is currently annotated with the following information:
-
-
Method names of the Java frames and their extents (supporting
- inlined compiled methods)
-
Locations and types of oops, found using the oop map information
- from compiled methods (interpreter oop maps coming soon)
-
If a Java frame was interrupted by a signal (e.g., because of a
- crash), annotates the frame with the signal name and number
-
Interpreter codelet descriptions for interpreted frames
-
-
Finding which thread or threads caused a crash (currently
- identified by the presence of a signal handler frame)
-
Browsing of oops using the Oop Inspector.
-
Browsing of the java.lang.Thread object's oop.
-
Object histogram and inspection of objects therein.
-
-
-
-
-More functionality is planned. Please send email with suggestions on what
-would be useful, with any questions or comments, or if the debugger
-crashes.
-
-HSDB does not suspend the system at a safepoint, but at an arbitrary
-point. This means that many of the invariants in the VM's code are not
-followed.
-
-
-
-As it happens, most of the places where the code ported over from the
-VM has failed involve the topmost frame on the stack. Some
-modifications have been made to allow the system to recognize
-problematic situations.
-
-
-
-Certainly, not all of the failure modes of the debugger have been
-found. Please send email if
-HSDB throws an exception. The best debugging aid in these situations
-is a core file since it is a static view of the VM to which we can
-then adapt the debugger code, as opposed to having to try to suspend
-the VM over and over to reproduce the failure. gcore (1) is a useful
-tool. (NOTE: do not try gcore with any application using the DGA X
-server extension (example: Java2Demo); the kernel will panic. See bug
-4343237.)
-
-
-
-
diff --git a/hotspot/agent/make/jcoreproc64.sh b/hotspot/agent/make/jcoreproc64.sh
deleted file mode 100644
index 54c46c7d6df..00000000000
--- a/hotspot/agent/make/jcoreproc64.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2002, 2003, 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.
-#
-#
-
-. `dirname $0`/saenv64.sh
-
-# set the environment variable JCORE_PACKAGES to a comma separated list of
-# packages whose classes have to be retrieved from the core file.
-
-$SA_JAVA_CMD -Dsun.jvm.hotspot.tools.jcore.filter=sun.jvm.hotspot.tools.jcore.PackageNameFilter -Dsun.jvm.hotspot.tools.jcore.PackageNameFilter.pkgList=$JCORE_PACKAGES sun.jvm.hotspot.tools.jcore.ClassDump $*
diff --git a/hotspot/agent/make/jcorewindbg.bat b/hotspot/agent/make/jcorewindbg.bat
deleted file mode 100644
index b8ed4504b92..00000000000
--- a/hotspot/agent/make/jcorewindbg.bat
+++ /dev/null
@@ -1,33 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv.bat
-
-REM set the environment variable JCORE_PACKAGES to comman separated list of
-REM packages whose classes have to be retrieved from the core file.
-
-%SA_JAVA_CMD% -Dsun.jvm.hotspot.tools.jcore.filter=sun.jvm.hotspot.tools.jcore.PackageNameFilter -Dsun.jvm.hotspot.tools.jcore.PackageNameFilter.pkgList=%JCORE_PACKAGES% sun.jvm.hotspot.tools.jcore.ClassDump %1 %2
-
-
diff --git a/hotspot/agent/make/jcorewindbg64.bat b/hotspot/agent/make/jcorewindbg64.bat
deleted file mode 100644
index 61913238814..00000000000
--- a/hotspot/agent/make/jcorewindbg64.bat
+++ /dev/null
@@ -1,33 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv64.bat
-
-REM set the environment variable JCORE_PACKAGES to comman separated list of
-REM packages whose classes have to be retrieved from the core file.
-
-%SA_JAVA_CMD% -Dsun.jvm.hotspot.tools.jcore.filter=sun.jvm.hotspot.tools.jcore.PackageNameFilter -Dsun.jvm.hotspot.tools.jcore.PackageNameFilter.pkgList=%JCORE_PACKAGES% sun.jvm.hotspot.tools.jcore.ClassDump %1 %2
-
-
diff --git a/hotspot/agent/make/jdbcore.sh b/hotspot/agent/make/jdbcore.sh
deleted file mode 100644
index 3d9b16567a0..00000000000
--- a/hotspot/agent/make/jdbcore.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2003, 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.
-#
-#
-
-usage()
-{
- echo "usage: $0 "
- exit 1
-}
-#
-if [ $# -lt 2 ]; then
- usage
-else
- EXEC_FILE="${1}"
- CORE_FILE="${2}"
- echo "$0 attaching to core=${CORE_FILE}"
-fi
-#
-
-. `dirname $0`/saenv.sh
-
-$JAVA_HOME/bin/jdb -J-Xbootclasspath/a:$SA_CLASSPATH:$JAVA_HOME/lib/tools.jar \
- -J-Dsun.boot.library.path=$JAVA_HOME/jre/lib/$CPU:$SA_LIBPATH \
- -connect sun.jvm.hotspot.jdi.SACoreAttachingConnector:core=${CORE_FILE},javaExecutable=${EXEC_FILE}
diff --git a/hotspot/agent/make/jdbcore64.sh b/hotspot/agent/make/jdbcore64.sh
deleted file mode 100644
index 0a3ac0909a8..00000000000
--- a/hotspot/agent/make/jdbcore64.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2003, 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.
-#
-#
-
-usage()
-{
- echo "usage: $0 "
- exit 1
-}
-#
-if [ $# -lt 2 ]; then
- usage
-else
- EXEC_FILE="${1}"
- CORE_FILE="${2}"
- echo "$0 attaching to core=${CORE_FILE}"
-fi
-#
-
-. `dirname $0`/saenv64.sh
-
-$JAVA_HOME/bin/jdb -J-d64 -J-Xbootclasspath/a:$SA_CLASSPATH:$JAVA_HOME/lib/tools.jar \
- -J-Dsun.boot.library.path=$JAVA_HOME/jre/lib/$CPU:$SA_LIBPATH \
- -connect sun.jvm.hotspot.jdi.SACoreAttachingConnector:core=${CORE_FILE},javaExecutable=${EXEC_FILE}
diff --git a/hotspot/agent/make/jdbproc.sh b/hotspot/agent/make/jdbproc.sh
deleted file mode 100644
index 86a1644a86f..00000000000
--- a/hotspot/agent/make/jdbproc.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2003, 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.
-#
-#
-
-usage()
-{
- echo "usage: $0 "
- exit 1
-}
-#
-if [ $# -lt 1 ]; then
- usage
-else
- PID="${1}"
- echo "$0 attaching to PID=${PID}"
-fi
-#
-
-. `dirname $0`/saenv.sh
-
-$JAVA_HOME/bin/jdb -J-Xbootclasspath/a:$SA_CLASSPATH:$JAVA_HOME/lib/tools.jar \
- -J-Dsun.boot.library.path=$JAVA_HOME/jre/lib/$CPU:$SA_LIBPATH \
- -connect sun.jvm.hotspot.jdi.SAPIDAttachingConnector:pid=${PID}
diff --git a/hotspot/agent/make/jdbproc64.sh b/hotspot/agent/make/jdbproc64.sh
deleted file mode 100644
index 9d9592bc1e8..00000000000
--- a/hotspot/agent/make/jdbproc64.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2003, 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.
-#
-#
-
-usage()
-{
- echo "usage: $0 "
- exit 1
-}
-#
-if [ $# -lt 1 ]; then
- usage
-else
- PID="${1}"
- echo "$0 attaching to PID=${PID}"
-fi
-
-. `dirname $0`/saenv64.sh
-
-$JAVA_HOME/bin/jdb -J-d64 -J-Xbootclasspath/a:$SA_CLASSPATH:$JAVA_HOME/lib/tools.jar \
- -J-Dsun.boot.library.path=$JAVA_HOME/jre/lib/$CPU:$SA_LIBPATH \
- -connect sun.jvm.hotspot.jdi.SAPIDAttachingConnector:pid=${PID}
-
diff --git a/hotspot/agent/make/jhistoproc.sh b/hotspot/agent/make/jhistoproc.sh
deleted file mode 100644
index 23e46dc1960..00000000000
--- a/hotspot/agent/make/jhistoproc.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2003, 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.
-#
-#
-
-. `dirname $0`/saenv.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.ObjectHistogram $*
diff --git a/hotspot/agent/make/jhistoproc64.sh b/hotspot/agent/make/jhistoproc64.sh
deleted file mode 100644
index 6c50624913c..00000000000
--- a/hotspot/agent/make/jhistoproc64.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2003, 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.
-#
-#
-
-. `dirname $0`/saenv64.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.ObjectHistogram $*
diff --git a/hotspot/agent/make/jhistowindbg.bat b/hotspot/agent/make/jhistowindbg.bat
deleted file mode 100644
index ad1975ca540..00000000000
--- a/hotspot/agent/make/jhistowindbg.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.ObjectHistogram %1 %2
diff --git a/hotspot/agent/make/jhistowindbg64.bat b/hotspot/agent/make/jhistowindbg64.bat
deleted file mode 100644
index 813afe88340..00000000000
--- a/hotspot/agent/make/jhistowindbg64.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv64.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.ObjectHistogram %1 %2
diff --git a/hotspot/agent/make/jsdbproc.sh b/hotspot/agent/make/jsdbproc.sh
deleted file mode 100644
index 657d3993cd5..00000000000
--- a/hotspot/agent/make/jsdbproc.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2004, 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.
-#
-#
-
-
-. `dirname $0`/saenv.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.soql.JSDB $*
diff --git a/hotspot/agent/make/jsdbwindbg.bat b/hotspot/agent/make/jsdbwindbg.bat
deleted file mode 100644
index 2c6e66bdb83..00000000000
--- a/hotspot/agent/make/jsdbwindbg.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-@echo off
-
-REM
-REM Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.soql.JSDB %1 %2
diff --git a/hotspot/agent/make/jsdbwindbg64.bat b/hotspot/agent/make/jsdbwindbg64.bat
deleted file mode 100644
index 10582b524a3..00000000000
--- a/hotspot/agent/make/jsdbwindbg64.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-@echo off
-
-REM
-REM Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv64.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.soql.JSDB %1 %2
diff --git a/hotspot/agent/make/jstackproc.sh b/hotspot/agent/make/jstackproc.sh
deleted file mode 100644
index cdffc725a02..00000000000
--- a/hotspot/agent/make/jstackproc.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2003, 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.
-#
-#
-
-. `dirname $0`/saenv.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.StackTrace $*
diff --git a/hotspot/agent/make/jstackproc64.sh b/hotspot/agent/make/jstackproc64.sh
deleted file mode 100644
index fb4cde33fc3..00000000000
--- a/hotspot/agent/make/jstackproc64.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2003, 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.
-#
-#
-
-. `dirname $0`/saenv64.sh
-
-$SA_JAVA_CMD sun.jvm.hotspot.tools.StackTrace $*
diff --git a/hotspot/agent/make/jstackwindbg.bat b/hotspot/agent/make/jstackwindbg.bat
deleted file mode 100644
index edf82aa6ccc..00000000000
--- a/hotspot/agent/make/jstackwindbg.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.StackTrace %1 %2
diff --git a/hotspot/agent/make/jstackwindbg64.bat b/hotspot/agent/make/jstackwindbg64.bat
deleted file mode 100644
index 387b41f4927..00000000000
--- a/hotspot/agent/make/jstackwindbg64.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM
-REM This code is free software; you can redistribute it and/or modify it
-REM under the terms of the GNU General Public License version 2 only, as
-REM published by the Free Software Foundation.
-REM
-REM This code is distributed in the hope that it will be useful, but WITHOUT
-REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-REM version 2 for more details (a copy is included in the LICENSE file that
-REM accompanied this code).
-REM
-REM You should have received a copy of the GNU General Public License version
-REM 2 along with this work; if not, write to the Free Software Foundation,
-REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-REM
-REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-REM or visit www.oracle.com if you need additional information or have any
-REM questions.
-REM
-REM
-
-call saenv64.bat
-
-%SA_JAVA_CMD% sun.jvm.hotspot.tools.StackTrace %1 %2
diff --git a/hotspot/agent/make/marks_notes.html b/hotspot/agent/make/marks_notes.html
deleted file mode 100644
index 76fd46c8036..00000000000
--- a/hotspot/agent/make/marks_notes.html
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
- Hotspot SA User Interface Notes
-
-
-
-
Hotspot SA User Interface Notes
-
-
Workspace and Building
-
-
- All the source code for the Serviceability Agent is in
- src/share/vm/agent in the HotSport workspace
- /net/jano.sfbay/export/disk05/hotspot/ws/1.4/sa_baseline
-
- You can build the project by typing gnumake in the
- src/share/vm/agent directory.
-
- Refactoring of package hierarchy. All user interface components should be in
- the ui package. Perhaps: sun.jvm.hotspot.ui.hsdb.Main for the HSDB.
-
- The src\share\vm\agent area seems like a workspace so it should be organized like
- one. In particular, I'd like to suggest the following directory layout:
-
-
-
src: All sources that are curently under the sun directory.
-
classes: compiled class files.
-
lib: Resources like images, icons and jar files.
-
docs: Documentation
-
deploy: distribution bundles for Java Web Start.
-
-
-
- Seems like there is a lot of redundant functionality. Perhaps
- this can be consolidated with a javax.swing.Actions architecture.
-
-
Tasklist
-
-
- Stack memory pane:
- It's one of the more useful JVM debugging tools in the SA. However, it
- doesn't support any interaction with the text.
-
- HSDB: Object Histogram. Column sizes should be sized according the the
- contents. i.e, The size and count columns should be narrow enought to
- handle the largest window. Since there is a lot of data, sorting
- and searching should be implemented.
-
-
-
Log
-
- Last modified: Tue Feb 05 19:15:12 Pacific Standard Time 2002
-
- sun.jvm.hotspot.oops.ObjectHistogram should be the underlying data
- structure for the TableModels. It shouldnt bother with sorting the data -
- the table model should do that. It should implement these methods:
-
-
- public int getSize()
- public ObjectHistogramElement getElementAt(int row);
-
-
- ObjectHistogramElement should return the String that represents
- the third column
-
-
-
- * The {@code value} field in {@link OptionValue} is considered constant if the type of
- * {@code receiver} is (assignable to) {@link StableOptionValue}.
- */
- public JavaConstant readConstantFieldValue(JavaField field, JavaConstant receiver) {
+ public JavaConstant readConstantFieldValue(ResolvedJavaField field, JavaConstant receiver) {
HotSpotResolvedJavaField hotspotField = (HotSpotResolvedJavaField) field;
if (hotspotField.isStatic()) {
@@ -312,37 +300,31 @@ public class HotSpotConstantReflectionProvider implements ConstantReflectionProv
return value;
}
}
- } else if (hotspotField.isStable()) {
+ } else if (hotspotField.isStable() && runtime.getConfig().foldStableValues) {
if (hotspotField.isInObject(object)) {
JavaConstant value = readFieldValue(field, receiver);
if (isStableInstanceFieldValueConstant(value, object.getClass())) {
return value;
}
}
- } else {
- Class> clazz = object.getClass();
- if (StableOptionValue.class.isAssignableFrom(clazz)) {
- if (hotspotField.isInObject(object) && hotspotField.getName().equals("value")) {
- StableOptionValue> option = (StableOptionValue>) object;
- return HotSpotObjectConstantImpl.forObject(option.getValue());
- }
- }
}
}
}
return null;
}
- public JavaConstant readFieldValue(JavaField field, JavaConstant receiver) {
+ public JavaConstant readFieldValue(ResolvedJavaField field, JavaConstant receiver) {
HotSpotResolvedJavaField hotspotField = (HotSpotResolvedJavaField) field;
if (!hotspotField.isStable()) {
return readNonStableFieldValue(field, receiver);
- } else {
+ } else if (runtime.getConfig().foldStableValues) {
return readStableFieldValue(field, receiver, hotspotField.isDefaultStable());
+ } else {
+ return null;
}
}
- private JavaConstant readNonStableFieldValue(JavaField field, JavaConstant receiver) {
+ private JavaConstant readNonStableFieldValue(ResolvedJavaField field, JavaConstant receiver) {
HotSpotResolvedJavaField hotspotField = (HotSpotResolvedJavaField) field;
if (hotspotField.isStatic()) {
HotSpotResolvedJavaType holder = (HotSpotResolvedJavaType) hotspotField.getDeclaringClass();
@@ -357,7 +339,7 @@ public class HotSpotConstantReflectionProvider implements ConstantReflectionProv
return null;
}
- public JavaConstant readStableFieldValue(JavaField field, JavaConstant receiver, boolean isDefaultStable) {
+ public JavaConstant readStableFieldValue(ResolvedJavaField field, JavaConstant receiver, boolean isDefaultStable) {
JavaConstant fieldValue = readNonStableFieldValue(field, receiver);
if (fieldValue.isNonNull()) {
JavaType declaredType = field.getType();
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIRuntime.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIRuntime.java
index 7ea4ebf407d..4077c0f40f4 100644
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIRuntime.java
+++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIRuntime.java
@@ -49,6 +49,7 @@ import jdk.vm.ci.runtime.JVMCI;
import jdk.vm.ci.runtime.JVMCIBackend;
import jdk.vm.ci.runtime.JVMCICompiler;
import jdk.vm.ci.service.Services;
+import jdk.internal.misc.VM;
//JaCoCo Exclude
@@ -83,6 +84,22 @@ public final class HotSpotJVMCIRuntime implements HotSpotJVMCIRuntimeProvider, H
return DelayedInit.instance;
}
+ /**
+ * Gets a boolean value based on a system property {@linkplain VM#getSavedProperty(String)
+ * saved} at system initialization time. The property name is prefixed with "{@code jvmci.}".
+ *
+ * @param name the name of the system property to derive a boolean value from using
+ * {@link Boolean#parseBoolean(String)}
+ * @param def the value to return if there is no system property corresponding to {@code name}
+ */
+ public static boolean getBooleanProperty(String name, boolean def) {
+ String value = VM.getSavedProperty("jvmci." + name);
+ if (value == null) {
+ return def;
+ }
+ return Boolean.parseBoolean(value);
+ }
+
public static HotSpotJVMCIBackendFactory findFactory(String architecture) {
for (HotSpotJVMCIBackendFactory factory : Services.load(HotSpotJVMCIBackendFactory.class)) {
if (factory.getArchitecture().equalsIgnoreCase(architecture)) {
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaField.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaField.java
index 00b0c0de8c9..1fd7e48924f 100644
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaField.java
+++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaField.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2014, 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.
*
* This code is free software; you can redistribute it and/or modify it
@@ -40,17 +40,14 @@ public interface HotSpotResolvedJavaField extends ResolvedJavaField {
int offset();
/**
- * Checks if this field has the {@link Stable} annotation.
- *
- * @return true if field has {@link Stable} annotation, false otherwise
+ * Determines if this field should be treated as a constant.
*/
boolean isStable();
/**
- * If this field is stable, checks if default values (0, null, etc.) should be considered stable
- * as well.
- *
- * @return true if default values should be considered stable, false otherwise
+ * Determines if this field should be considered constant if it has the default value for its
+ * type (e.g, 0, null, etc.). The result of this method is undefined if this field is not
+ * {@linkplain #isStable() stable}.
*/
boolean isDefaultStable();
}
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl.java
index cd89be3e563..c6f4dabc0fb 100644
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl.java
+++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl.java
@@ -35,21 +35,16 @@ import jdk.vm.ci.meta.MetaAccessProvider;
import jdk.vm.ci.meta.ModifiersProvider;
import jdk.vm.ci.meta.ResolvedJavaField;
import jdk.vm.ci.meta.ResolvedJavaType;
-import jdk.vm.ci.options.Option;
-import jdk.vm.ci.options.OptionType;
-import jdk.vm.ci.options.OptionValue;
/**
* Represents a field in a HotSpot type.
*/
class HotSpotResolvedJavaFieldImpl implements HotSpotResolvedJavaField, HotSpotProxified {
- static class Options {
- //@formatter:off
- @Option(help = "Mark well-known stable fields as such.", type = OptionType.Debug)
- public static final OptionValue ImplicitStableValues = new OptionValue<>(true);
- //@formatter:on
- }
+ /**
+ * Mark well-known stable fields as such.
+ */
+ private static final boolean ImplicitStableValues = HotSpotJVMCIRuntime.getBooleanProperty("ImplicitStableValues", true);
private final HotSpotResolvedObjectTypeImpl holder;
private final String name;
@@ -190,7 +185,7 @@ class HotSpotResolvedJavaFieldImpl implements HotSpotResolvedJavaField, HotSpotP
@Override
public boolean isSynthetic() {
- return (config().syntheticFlag & modifiers) != 0;
+ return (config().jvmAccSynthetic & modifiers) != 0;
}
/**
@@ -203,7 +198,7 @@ class HotSpotResolvedJavaFieldImpl implements HotSpotResolvedJavaField, HotSpotP
return true;
}
assert getAnnotation(Stable.class) == null;
- if (Options.ImplicitStableValues.getValue() && isImplicitStableField()) {
+ if (ImplicitStableValues && isImplicitStableField()) {
return true;
}
return false;
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethod.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethod.java
index d1ecdac098d..80635caa7c7 100644
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethod.java
+++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethod.java
@@ -27,22 +27,12 @@ import java.lang.reflect.Modifier;
import jdk.vm.ci.meta.JavaMethod;
import jdk.vm.ci.meta.ResolvedJavaMethod;
import jdk.vm.ci.meta.ResolvedJavaType;
-import jdk.vm.ci.options.Option;
-import jdk.vm.ci.options.OptionType;
-import jdk.vm.ci.options.OptionValue;
/**
* Implementation of {@link JavaMethod} for resolved HotSpot methods.
*/
public interface HotSpotResolvedJavaMethod extends ResolvedJavaMethod {
- public static class Options {
- // @formatter:off
- @Option(help = "", type = OptionType.Debug)
- public static final OptionValue UseProfilingInformation = new OptionValue<>(true);
- // @formatter:on
- }
-
/**
* Returns true if this method has a {@code CallerSensitive} annotation.
*
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl.java
index 4b7184e0529..5999d8c204f 100644
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl.java
+++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2014, 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
@@ -24,7 +24,6 @@ package jdk.vm.ci.hotspot;
import static jdk.vm.ci.hotspot.CompilerToVM.compilerToVM;
import static jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime;
-import static jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod.Options.UseProfilingInformation;
import static jdk.vm.ci.hotspot.HotSpotVMConfig.config;
import static jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE;
@@ -170,7 +169,7 @@ final class HotSpotResolvedJavaMethodImpl extends HotSpotMethod implements HotSp
* @return flags of this method
*/
private int getFlags() {
- return UNSAFE.getByte(metaspaceMethod + config().methodFlagsOffset);
+ return UNSAFE.getShort(metaspaceMethod + config().methodFlagsOffset);
}
/**
@@ -424,7 +423,7 @@ final class HotSpotResolvedJavaMethodImpl extends HotSpotMethod implements HotSp
public ProfilingInfo getProfilingInfo(boolean includeNormal, boolean includeOSR) {
ProfilingInfo info;
- if (UseProfilingInformation.getValue() && methodData == null) {
+ if (methodData == null) {
long metaspaceMethodData = UNSAFE.getAddress(metaspaceMethod + config().methodDataOffset);
if (metaspaceMethodData != 0) {
methodData = new HotSpotMethodData(metaspaceMethodData, this);
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java
index 4ef227ec823..65d92b1d8fd 100644
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java
+++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java
@@ -324,8 +324,7 @@ final class HotSpotResolvedObjectTypeImpl extends HotSpotResolvedJavaType implem
@Override
public boolean hasFinalizer() {
- HotSpotVMConfig config = config();
- return (getAccessFlags() & config.klassHasFinalizerFlag) != 0;
+ return (getAccessFlags() & config().jvmAccHasFinalizer) != 0;
}
@Override
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java
index 2709c0807ac..d237006dfcb 100644
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java
+++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java
@@ -37,7 +37,6 @@ import jdk.vm.ci.hotspotvmconfig.HotSpotVMConstant;
import jdk.vm.ci.hotspotvmconfig.HotSpotVMData;
import jdk.vm.ci.hotspotvmconfig.HotSpotVMField;
import jdk.vm.ci.hotspotvmconfig.HotSpotVMFlag;
-import jdk.vm.ci.hotspotvmconfig.HotSpotVMManual;
import jdk.vm.ci.hotspotvmconfig.HotSpotVMType;
import sun.misc.Unsafe;
@@ -68,11 +67,11 @@ public class HotSpotVMConfig {
assert gHotSpotVMData != 0;
// Make FindBugs happy.
- gHotSpotVMStructs = 0;
- gHotSpotVMTypes = 0;
- gHotSpotVMIntConstants = 0;
- gHotSpotVMLongConstants = 0;
- gHotSpotVMAddresses = 0;
+ jvmciHotSpotVMStructs = 0;
+ jvmciHotSpotVMTypes = 0;
+ jvmciHotSpotVMIntConstants = 0;
+ jvmciHotSpotVMLongConstants = 0;
+ jvmciHotSpotVMAddresses = 0;
// Initialize the gHotSpotVM fields.
for (Field f : HotSpotVMConfig.class.getDeclaredFields()) {
@@ -89,41 +88,17 @@ public class HotSpotVMConfig {
}
// Quick sanity check.
- assert gHotSpotVMStructs != 0;
- assert gHotSpotVMTypes != 0;
- assert gHotSpotVMIntConstants != 0;
- assert gHotSpotVMLongConstants != 0;
- assert gHotSpotVMAddresses != 0;
+ assert jvmciHotSpotVMStructs != 0;
+ assert jvmciHotSpotVMTypes != 0;
+ assert jvmciHotSpotVMIntConstants != 0;
+ assert jvmciHotSpotVMLongConstants != 0;
+ assert jvmciHotSpotVMAddresses != 0;
initialize();
oopEncoding = new CompressEncoding(narrowOopBase, narrowOopShift, logMinObjAlignment());
klassEncoding = new CompressEncoding(narrowKlassBase, narrowKlassShift, logKlassAlignment);
- final long barrierSetAddress = UNSAFE.getAddress(universeCollectedHeap + collectedHeapBarrierSetOffset);
- final int kind = UNSAFE.getInt(barrierSetAddress + barrierSetFakeRttiOffset + fakeRttiConcreteTagOffset);
- if ((kind == barrierSetCardTableModRef) || (kind == barrierSetCardTableForRS) || (kind == barrierSetCardTableExtension) || (kind == barrierSetG1SATBCT) || (kind == barrierSetG1SATBCTLogging)) {
- final long base = UNSAFE.getAddress(barrierSetAddress + cardTableModRefBSByteMapBaseOffset);
- assert base != 0 : "unexpected byte_map_base: " + base;
- cardtableStartAddress = base;
- cardtableShift = cardTableModRefBSCardShift;
- } else if (kind == barrierSetModRef) {
- // No post barriers
- cardtableStartAddress = 0;
- cardtableShift = 0;
- } else {
- cardtableStartAddress = -1;
- cardtableShift = -1;
- }
-
- // Now handle all HotSpotVMManual fields.
- inlineCacheMissStub = inlineCacheMissBlob + UNSAFE.getInt(inlineCacheMissBlob + codeBlobCodeOffsetOffset);
- handleWrongMethodStub = wrongMethodBlob + UNSAFE.getInt(wrongMethodBlob + codeBlobCodeOffsetOffset);
- handleDeoptStub = deoptBlob + UNSAFE.getInt(deoptBlob + codeBlobCodeOffsetOffset) + UNSAFE.getInt(deoptBlob + deoptimizationBlobUnpackOffsetOffset);
- uncommonTrapStub = deoptBlob + UNSAFE.getInt(deoptBlob + codeBlobCodeOffsetOffset) + UNSAFE.getInt(deoptBlob + deoptimizationBlobUncommonTrapOffsetOffset);
-
- tlabAlignmentReserve = roundUp(threadLocalAllocBufferEndReserve(), minObjAlignment());
-
assert check();
assert HotSpotVMConfigVerifier.check();
}
@@ -139,28 +114,28 @@ public class HotSpotVMConfig {
private void initialize() {
// Fill the VM fields hash map.
HashMap vmFields = new HashMap<>();
- for (VMFields.Field e : new VMFields(gHotSpotVMStructs)) {
+ for (VMFields.Field e : new VMFields(jvmciHotSpotVMStructs)) {
vmFields.put(e.getName(), e);
}
// Fill the VM types hash map.
HashMap vmTypes = new HashMap<>();
- for (VMTypes.Type e : new VMTypes(gHotSpotVMTypes)) {
+ for (VMTypes.Type e : new VMTypes(jvmciHotSpotVMTypes)) {
vmTypes.put(e.getTypeName(), e);
}
// Fill the VM constants hash map.
HashMap vmConstants = new HashMap<>();
- for (AbstractConstant e : new VMIntConstants(gHotSpotVMIntConstants)) {
+ for (AbstractConstant e : new VMIntConstants(jvmciHotSpotVMIntConstants)) {
vmConstants.put(e.getName(), e);
}
- for (AbstractConstant e : new VMAddresses(gHotSpotVMLongConstants)) {
+ for (AbstractConstant e : new VMLongConstants(jvmciHotSpotVMLongConstants)) {
vmConstants.put(e.getName(), e);
}
// Fill the VM addresses hash map.
HashMap vmAddresses = new HashMap<>();
- for (VMAddresses.Address e : new VMAddresses(gHotSpotVMAddresses)) {
+ for (VMAddresses.Address e : new VMAddresses(jvmciHotSpotVMAddresses)) {
vmAddresses.put(e.getName(), e);
}
@@ -213,6 +188,7 @@ public class HotSpotVMConfig {
if (entry == null) {
throw new JVMCIError(f.getName() + ": expected VM type not found: " + name);
}
+
switch (annotation.get()) {
case SIZE:
setField(f, entry.getSize());
@@ -371,14 +347,14 @@ public class HotSpotVMConfig {
/**
* VMStructEntry (see {@code vmStructs.hpp}).
*/
- @HotSpotVMData(index = 0) @Stable private long gHotSpotVMStructs;
- @HotSpotVMData(index = 1) @Stable private long gHotSpotVMStructEntryTypeNameOffset;
- @HotSpotVMData(index = 2) @Stable private long gHotSpotVMStructEntryFieldNameOffset;
- @HotSpotVMData(index = 3) @Stable private long gHotSpotVMStructEntryTypeStringOffset;
- @HotSpotVMData(index = 4) @Stable private long gHotSpotVMStructEntryIsStaticOffset;
- @HotSpotVMData(index = 5) @Stable private long gHotSpotVMStructEntryOffsetOffset;
- @HotSpotVMData(index = 6) @Stable private long gHotSpotVMStructEntryAddressOffset;
- @HotSpotVMData(index = 7) @Stable private long gHotSpotVMStructEntryArrayStride;
+ @HotSpotVMData(index = 0) @Stable private long jvmciHotSpotVMStructs;
+ @HotSpotVMData(index = 1) @Stable private long jvmciHotSpotVMStructEntryTypeNameOffset;
+ @HotSpotVMData(index = 2) @Stable private long jvmciHotSpotVMStructEntryFieldNameOffset;
+ @HotSpotVMData(index = 3) @Stable private long jvmciHotSpotVMStructEntryTypeStringOffset;
+ @HotSpotVMData(index = 4) @Stable private long jvmciHotSpotVMStructEntryIsStaticOffset;
+ @HotSpotVMData(index = 5) @Stable private long jvmciHotSpotVMStructEntryOffsetOffset;
+ @HotSpotVMData(index = 6) @Stable private long jvmciHotSpotVMStructEntryAddressOffset;
+ @HotSpotVMData(index = 7) @Stable private long jvmciHotSpotVMStructEntryArrayStride;
final class VMFields implements Iterable {
@@ -394,7 +370,7 @@ public class HotSpotVMConfig {
private int index = 0;
private Field current() {
- return new Field(address + gHotSpotVMStructEntryArrayStride * index);
+ return new Field(address + jvmciHotSpotVMStructEntryArrayStride * index);
}
/**
@@ -422,30 +398,30 @@ public class HotSpotVMConfig {
}
public String getTypeName() {
- long typeNameAddress = UNSAFE.getAddress(entryAddress + gHotSpotVMStructEntryTypeNameOffset);
+ long typeNameAddress = UNSAFE.getAddress(entryAddress + jvmciHotSpotVMStructEntryTypeNameOffset);
return readCString(UNSAFE, typeNameAddress);
}
public String getFieldName() {
- long fieldNameAddress = UNSAFE.getAddress(entryAddress + gHotSpotVMStructEntryFieldNameOffset);
+ long fieldNameAddress = UNSAFE.getAddress(entryAddress + jvmciHotSpotVMStructEntryFieldNameOffset);
return readCString(UNSAFE, fieldNameAddress);
}
public String getTypeString() {
- long typeStringAddress = UNSAFE.getAddress(entryAddress + gHotSpotVMStructEntryTypeStringOffset);
+ long typeStringAddress = UNSAFE.getAddress(entryAddress + jvmciHotSpotVMStructEntryTypeStringOffset);
return readCString(UNSAFE, typeStringAddress);
}
public boolean isStatic() {
- return UNSAFE.getInt(entryAddress + gHotSpotVMStructEntryIsStaticOffset) != 0;
+ return UNSAFE.getInt(entryAddress + jvmciHotSpotVMStructEntryIsStaticOffset) != 0;
}
public long getOffset() {
- return UNSAFE.getLong(entryAddress + gHotSpotVMStructEntryOffsetOffset);
+ return UNSAFE.getLong(entryAddress + jvmciHotSpotVMStructEntryOffsetOffset);
}
public long getAddress() {
- return UNSAFE.getAddress(entryAddress + gHotSpotVMStructEntryAddressOffset);
+ return UNSAFE.getAddress(entryAddress + jvmciHotSpotVMStructEntryAddressOffset);
}
public String getName() {
@@ -466,6 +442,7 @@ public class HotSpotVMConfig {
case "address":
case "intptr_t":
case "uintptr_t":
+ case "size_t":
return UNSAFE.getAddress(getAddress());
default:
// All foo* types are addresses.
@@ -487,14 +464,14 @@ public class HotSpotVMConfig {
/**
* VMTypeEntry (see vmStructs.hpp).
*/
- @HotSpotVMData(index = 8) @Stable private long gHotSpotVMTypes;
- @HotSpotVMData(index = 9) @Stable private long gHotSpotVMTypeEntryTypeNameOffset;
- @HotSpotVMData(index = 10) @Stable private long gHotSpotVMTypeEntrySuperclassNameOffset;
- @HotSpotVMData(index = 11) @Stable private long gHotSpotVMTypeEntryIsOopTypeOffset;
- @HotSpotVMData(index = 12) @Stable private long gHotSpotVMTypeEntryIsIntegerTypeOffset;
- @HotSpotVMData(index = 13) @Stable private long gHotSpotVMTypeEntryIsUnsignedOffset;
- @HotSpotVMData(index = 14) @Stable private long gHotSpotVMTypeEntrySizeOffset;
- @HotSpotVMData(index = 15) @Stable private long gHotSpotVMTypeEntryArrayStride;
+ @HotSpotVMData(index = 8) @Stable private long jvmciHotSpotVMTypes;
+ @HotSpotVMData(index = 9) @Stable private long jvmciHotSpotVMTypeEntryTypeNameOffset;
+ @HotSpotVMData(index = 10) @Stable private long jvmciHotSpotVMTypeEntrySuperclassNameOffset;
+ @HotSpotVMData(index = 11) @Stable private long jvmciHotSpotVMTypeEntryIsOopTypeOffset;
+ @HotSpotVMData(index = 12) @Stable private long jvmciHotSpotVMTypeEntryIsIntegerTypeOffset;
+ @HotSpotVMData(index = 13) @Stable private long jvmciHotSpotVMTypeEntryIsUnsignedOffset;
+ @HotSpotVMData(index = 14) @Stable private long jvmciHotSpotVMTypeEntrySizeOffset;
+ @HotSpotVMData(index = 15) @Stable private long jvmciHotSpotVMTypeEntryArrayStride;
final class VMTypes implements Iterable {
@@ -510,7 +487,7 @@ public class HotSpotVMConfig {
private int index = 0;
private Type current() {
- return new Type(address + gHotSpotVMTypeEntryArrayStride * index);
+ return new Type(address + jvmciHotSpotVMTypeEntryArrayStride * index);
}
/**
@@ -538,29 +515,29 @@ public class HotSpotVMConfig {
}
public String getTypeName() {
- long typeNameAddress = UNSAFE.getAddress(entryAddress + gHotSpotVMTypeEntryTypeNameOffset);
+ long typeNameAddress = UNSAFE.getAddress(entryAddress + jvmciHotSpotVMTypeEntryTypeNameOffset);
return readCString(UNSAFE, typeNameAddress);
}
public String getSuperclassName() {
- long superclassNameAddress = UNSAFE.getAddress(entryAddress + gHotSpotVMTypeEntrySuperclassNameOffset);
+ long superclassNameAddress = UNSAFE.getAddress(entryAddress + jvmciHotSpotVMTypeEntrySuperclassNameOffset);
return readCString(UNSAFE, superclassNameAddress);
}
public boolean isOopType() {
- return UNSAFE.getInt(entryAddress + gHotSpotVMTypeEntryIsOopTypeOffset) != 0;
+ return UNSAFE.getInt(entryAddress + jvmciHotSpotVMTypeEntryIsOopTypeOffset) != 0;
}
public boolean isIntegerType() {
- return UNSAFE.getInt(entryAddress + gHotSpotVMTypeEntryIsIntegerTypeOffset) != 0;
+ return UNSAFE.getInt(entryAddress + jvmciHotSpotVMTypeEntryIsIntegerTypeOffset) != 0;
}
public boolean isUnsigned() {
- return UNSAFE.getInt(entryAddress + gHotSpotVMTypeEntryIsUnsignedOffset) != 0;
+ return UNSAFE.getInt(entryAddress + jvmciHotSpotVMTypeEntryIsUnsignedOffset) != 0;
}
public long getSize() {
- return UNSAFE.getLong(entryAddress + gHotSpotVMTypeEntrySizeOffset);
+ return UNSAFE.getLong(entryAddress + jvmciHotSpotVMTypeEntrySizeOffset);
}
@Override
@@ -594,10 +571,10 @@ public class HotSpotVMConfig {
/**
* VMIntConstantEntry (see vmStructs.hpp).
*/
- @HotSpotVMData(index = 16) @Stable private long gHotSpotVMIntConstants;
- @HotSpotVMData(index = 17) @Stable private long gHotSpotVMIntConstantEntryNameOffset;
- @HotSpotVMData(index = 18) @Stable private long gHotSpotVMIntConstantEntryValueOffset;
- @HotSpotVMData(index = 19) @Stable private long gHotSpotVMIntConstantEntryArrayStride;
+ @HotSpotVMData(index = 16) @Stable private long jvmciHotSpotVMIntConstants;
+ @HotSpotVMData(index = 17) @Stable private long jvmciHotSpotVMIntConstantEntryNameOffset;
+ @HotSpotVMData(index = 18) @Stable private long jvmciHotSpotVMIntConstantEntryValueOffset;
+ @HotSpotVMData(index = 19) @Stable private long jvmciHotSpotVMIntConstantEntryArrayStride;
final class VMIntConstants implements Iterable {
@@ -613,7 +590,7 @@ public class HotSpotVMConfig {
private int index = 0;
private Constant current() {
- return new Constant(address + gHotSpotVMIntConstantEntryArrayStride * index);
+ return new Constant(address + jvmciHotSpotVMIntConstantEntryArrayStride * index);
}
/**
@@ -635,7 +612,7 @@ public class HotSpotVMConfig {
final class Constant extends AbstractConstant {
Constant(long address) {
- super(address, gHotSpotVMIntConstantEntryNameOffset, gHotSpotVMIntConstantEntryValueOffset);
+ super(address, jvmciHotSpotVMIntConstantEntryNameOffset, jvmciHotSpotVMIntConstantEntryValueOffset);
}
@Override
@@ -653,10 +630,10 @@ public class HotSpotVMConfig {
/**
* VMLongConstantEntry (see vmStructs.hpp).
*/
- @HotSpotVMData(index = 20) @Stable private long gHotSpotVMLongConstants;
- @HotSpotVMData(index = 21) @Stable private long gHotSpotVMLongConstantEntryNameOffset;
- @HotSpotVMData(index = 22) @Stable private long gHotSpotVMLongConstantEntryValueOffset;
- @HotSpotVMData(index = 23) @Stable private long gHotSpotVMLongConstantEntryArrayStride;
+ @HotSpotVMData(index = 20) @Stable private long jvmciHotSpotVMLongConstants;
+ @HotSpotVMData(index = 21) @Stable private long jvmciHotSpotVMLongConstantEntryNameOffset;
+ @HotSpotVMData(index = 22) @Stable private long jvmciHotSpotVMLongConstantEntryValueOffset;
+ @HotSpotVMData(index = 23) @Stable private long jvmciHotSpotVMLongConstantEntryArrayStride;
final class VMLongConstants implements Iterable {
@@ -672,7 +649,7 @@ public class HotSpotVMConfig {
private int index = 0;
private Constant currentEntry() {
- return new Constant(address + gHotSpotVMLongConstantEntryArrayStride * index);
+ return new Constant(address + jvmciHotSpotVMLongConstantEntryArrayStride * index);
}
/**
@@ -694,7 +671,7 @@ public class HotSpotVMConfig {
final class Constant extends AbstractConstant {
Constant(long address) {
- super(address, gHotSpotVMLongConstantEntryNameOffset, gHotSpotVMLongConstantEntryValueOffset);
+ super(address, jvmciHotSpotVMLongConstantEntryNameOffset, jvmciHotSpotVMLongConstantEntryValueOffset);
}
@Override
@@ -712,10 +689,10 @@ public class HotSpotVMConfig {
/**
* VMAddressEntry (see vmStructs.hpp).
*/
- @HotSpotVMData(index = 24) @Stable private long gHotSpotVMAddresses;
- @HotSpotVMData(index = 25) @Stable private long gHotSpotVMAddressEntryNameOffset;
- @HotSpotVMData(index = 26) @Stable private long gHotSpotVMAddressEntryValueOffset;
- @HotSpotVMData(index = 27) @Stable private long gHotSpotVMAddressEntryArrayStride;
+ @HotSpotVMData(index = 24) @Stable private long jvmciHotSpotVMAddresses;
+ @HotSpotVMData(index = 25) @Stable private long jvmciHotSpotVMAddressEntryNameOffset;
+ @HotSpotVMData(index = 26) @Stable private long jvmciHotSpotVMAddressEntryValueOffset;
+ @HotSpotVMData(index = 27) @Stable private long jvmciHotSpotVMAddressEntryArrayStride;
final class VMAddresses implements Iterable {
@@ -731,7 +708,7 @@ public class HotSpotVMConfig {
private int index = 0;
private Address currentEntry() {
- return new Address(address + gHotSpotVMAddressEntryArrayStride * index);
+ return new Address(address + jvmciHotSpotVMAddressEntryArrayStride * index);
}
/**
@@ -753,7 +730,7 @@ public class HotSpotVMConfig {
final class Address extends AbstractConstant {
Address(long address) {
- super(address, gHotSpotVMAddressEntryNameOffset, gHotSpotVMAddressEntryValueOffset);
+ super(address, jvmciHotSpotVMAddressEntryNameOffset, jvmciHotSpotVMAddressEntryValueOffset);
}
@Override
@@ -876,6 +853,7 @@ public class HotSpotVMConfig {
@HotSpotVMFlag(name = "JVMCIUseFastLocking") @Stable public boolean useFastLocking;
@HotSpotVMFlag(name = "ForceUnreachable") @Stable public boolean forceUnreachable;
@HotSpotVMFlag(name = "CodeCacheSegmentSize") @Stable public int codeSegmentSize;
+ @HotSpotVMFlag(name = "FoldStableValues") @Stable public boolean foldStableValues;
@HotSpotVMFlag(name = "UseTLAB") @Stable public boolean useTLAB;
@HotSpotVMFlag(name = "UseBiasedLocking") @Stable public boolean useBiasedLocking;
@@ -896,7 +874,7 @@ public class HotSpotVMConfig {
@HotSpotVMFlag(name = "FlightRecorder", optional = true) @Stable public boolean flightRecorder;
- @HotSpotVMField(name = "Universe::_collectedHeap", type = "CollectedHeap*", get = HotSpotVMField.Type.VALUE) @Stable private long universeCollectedHeap;
+ @HotSpotVMField(name = "CompilerToVM::Data::Universe_collectedHeap", type = "CollectedHeap*", get = HotSpotVMField.Type.VALUE) @Stable private long universeCollectedHeap;
@HotSpotVMField(name = "CollectedHeap::_total_collections", type = "unsigned int", get = HotSpotVMField.Type.OFFSET) @Stable private int collectedHeapTotalCollectionsOffset;
public long gcTotalCollectionsAddress() {
@@ -909,8 +887,8 @@ public class HotSpotVMConfig {
@HotSpotVMFlag(name = "UseCompressedOops") @Stable public boolean useCompressedOops;
@HotSpotVMFlag(name = "UseCompressedClassPointers") @Stable public boolean useCompressedClassPointers;
- @HotSpotVMField(name = "Universe::_narrow_oop._base", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long narrowOopBase;
- @HotSpotVMField(name = "Universe::_narrow_oop._shift", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int narrowOopShift;
+ @HotSpotVMField(name = "CompilerToVM::Data::Universe_narrow_oop_base", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long narrowOopBase;
+ @HotSpotVMField(name = "CompilerToVM::Data::Universe_narrow_oop_shift", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int narrowOopShift;
@HotSpotVMFlag(name = "ObjectAlignmentInBytes") @Stable public int objectAlignment;
public final int minObjAlignment() {
@@ -922,77 +900,75 @@ public class HotSpotVMConfig {
}
@HotSpotVMType(name = "narrowKlass", get = HotSpotVMType.Type.SIZE) @Stable public int narrowKlassSize;
- @HotSpotVMField(name = "Universe::_narrow_klass._base", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long narrowKlassBase;
- @HotSpotVMField(name = "Universe::_narrow_klass._shift", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int narrowKlassShift;
+ @HotSpotVMField(name = "CompilerToVM::Data::Universe_narrow_klass_base", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long narrowKlassBase;
+ @HotSpotVMField(name = "CompilerToVM::Data::Universe_narrow_klass_shift", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int narrowKlassShift;
@HotSpotVMConstant(name = "LogKlassAlignmentInBytes") @Stable public int logKlassAlignment;
// CPU capabilities
@HotSpotVMFlag(name = "UseSSE") @Stable public int useSSE;
@HotSpotVMFlag(name = "UseAVX", archs = {"amd64"}) @Stable public int useAVX;
- @HotSpotVMField(name = "Abstract_VM_Version::_reserve_for_allocation_prefetch", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int abstractVmVersionReserveForAllocationPrefetch;
+ @HotSpotVMField(name = "Abstract_VM_Version::_features", type = "uint64_t", get = HotSpotVMField.Type.VALUE) @Stable public long vmVersionFeatures;
- // X86 specific values
- @HotSpotVMField(name = "VM_Version::_cpuFeatures", type = "uint64_t", get = HotSpotVMField.Type.VALUE, archs = {"amd64"}) @Stable public long x86CPUFeatures;
- @HotSpotVMConstant(name = "VM_Version::CPU_CX8", archs = {"amd64"}) @Stable public long cpuCX8;
- @HotSpotVMConstant(name = "VM_Version::CPU_CMOV", archs = {"amd64"}) @Stable public long cpuCMOV;
- @HotSpotVMConstant(name = "VM_Version::CPU_FXSR", archs = {"amd64"}) @Stable public long cpuFXSR;
- @HotSpotVMConstant(name = "VM_Version::CPU_HT", archs = {"amd64"}) @Stable public long cpuHT;
- @HotSpotVMConstant(name = "VM_Version::CPU_MMX", archs = {"amd64"}) @Stable public long cpuMMX;
- @HotSpotVMConstant(name = "VM_Version::CPU_3DNOW_PREFETCH", archs = {"amd64"}) @Stable public long cpu3DNOWPREFETCH;
- @HotSpotVMConstant(name = "VM_Version::CPU_SSE", archs = {"amd64"}) @Stable public long cpuSSE;
- @HotSpotVMConstant(name = "VM_Version::CPU_SSE2", archs = {"amd64"}) @Stable public long cpuSSE2;
- @HotSpotVMConstant(name = "VM_Version::CPU_SSE3", archs = {"amd64"}) @Stable public long cpuSSE3;
- @HotSpotVMConstant(name = "VM_Version::CPU_SSSE3", archs = {"amd64"}) @Stable public long cpuSSSE3;
- @HotSpotVMConstant(name = "VM_Version::CPU_SSE4A", archs = {"amd64"}) @Stable public long cpuSSE4A;
- @HotSpotVMConstant(name = "VM_Version::CPU_SSE4_1", archs = {"amd64"}) @Stable public long cpuSSE41;
- @HotSpotVMConstant(name = "VM_Version::CPU_SSE4_2", archs = {"amd64"}) @Stable public long cpuSSE42;
- @HotSpotVMConstant(name = "VM_Version::CPU_POPCNT", archs = {"amd64"}) @Stable public long cpuPOPCNT;
- @HotSpotVMConstant(name = "VM_Version::CPU_LZCNT", archs = {"amd64"}) @Stable public long cpuLZCNT;
- @HotSpotVMConstant(name = "VM_Version::CPU_TSC", archs = {"amd64"}) @Stable public long cpuTSC;
- @HotSpotVMConstant(name = "VM_Version::CPU_TSCINV", archs = {"amd64"}) @Stable public long cpuTSCINV;
- @HotSpotVMConstant(name = "VM_Version::CPU_AVX", archs = {"amd64"}) @Stable public long cpuAVX;
- @HotSpotVMConstant(name = "VM_Version::CPU_AVX2", archs = {"amd64"}) @Stable public long cpuAVX2;
- @HotSpotVMConstant(name = "VM_Version::CPU_AES", archs = {"amd64"}) @Stable public long cpuAES;
- @HotSpotVMConstant(name = "VM_Version::CPU_ERMS", archs = {"amd64"}) @Stable public long cpuERMS;
- @HotSpotVMConstant(name = "VM_Version::CPU_CLMUL", archs = {"amd64"}) @Stable public long cpuCLMUL;
- @HotSpotVMConstant(name = "VM_Version::CPU_BMI1", archs = {"amd64"}) @Stable public long cpuBMI1;
- @HotSpotVMConstant(name = "VM_Version::CPU_BMI2", archs = {"amd64"}) @Stable public long cpuBMI2;
- @HotSpotVMConstant(name = "VM_Version::CPU_RTM", archs = {"amd64"}) @Stable public long cpuRTM;
- @HotSpotVMConstant(name = "VM_Version::CPU_ADX", archs = {"amd64"}) @Stable public long cpuADX;
- @HotSpotVMConstant(name = "VM_Version::CPU_AVX512F", archs = {"amd64"}) @Stable public long cpuAVX512F;
- @HotSpotVMConstant(name = "VM_Version::CPU_AVX512DQ", archs = {"amd64"}) @Stable public long cpuAVX512DQ;
- @HotSpotVMConstant(name = "VM_Version::CPU_AVX512PF", archs = {"amd64"}) @Stable public long cpuAVX512PF;
- @HotSpotVMConstant(name = "VM_Version::CPU_AVX512ER", archs = {"amd64"}) @Stable public long cpuAVX512ER;
- @HotSpotVMConstant(name = "VM_Version::CPU_AVX512CD", archs = {"amd64"}) @Stable public long cpuAVX512CD;
- @HotSpotVMConstant(name = "VM_Version::CPU_AVX512BW", archs = {"amd64"}) @Stable public long cpuAVX512BW;
- @HotSpotVMConstant(name = "VM_Version::CPU_AVX512VL", archs = {"amd64"}) @Stable public long cpuAVX512VL;
+ // AMD64 specific values
+ @HotSpotVMConstant(name = "VM_Version::CPU_CX8", archs = {"amd64"}) @Stable public long amd64CX8;
+ @HotSpotVMConstant(name = "VM_Version::CPU_CMOV", archs = {"amd64"}) @Stable public long amd64CMOV;
+ @HotSpotVMConstant(name = "VM_Version::CPU_FXSR", archs = {"amd64"}) @Stable public long amd64FXSR;
+ @HotSpotVMConstant(name = "VM_Version::CPU_HT", archs = {"amd64"}) @Stable public long amd64HT;
+ @HotSpotVMConstant(name = "VM_Version::CPU_MMX", archs = {"amd64"}) @Stable public long amd64MMX;
+ @HotSpotVMConstant(name = "VM_Version::CPU_3DNOW_PREFETCH", archs = {"amd64"}) @Stable public long amd643DNOWPREFETCH;
+ @HotSpotVMConstant(name = "VM_Version::CPU_SSE", archs = {"amd64"}) @Stable public long amd64SSE;
+ @HotSpotVMConstant(name = "VM_Version::CPU_SSE2", archs = {"amd64"}) @Stable public long amd64SSE2;
+ @HotSpotVMConstant(name = "VM_Version::CPU_SSE3", archs = {"amd64"}) @Stable public long amd64SSE3;
+ @HotSpotVMConstant(name = "VM_Version::CPU_SSSE3", archs = {"amd64"}) @Stable public long amd64SSSE3;
+ @HotSpotVMConstant(name = "VM_Version::CPU_SSE4A", archs = {"amd64"}) @Stable public long amd64SSE4A;
+ @HotSpotVMConstant(name = "VM_Version::CPU_SSE4_1", archs = {"amd64"}) @Stable public long amd64SSE41;
+ @HotSpotVMConstant(name = "VM_Version::CPU_SSE4_2", archs = {"amd64"}) @Stable public long amd64SSE42;
+ @HotSpotVMConstant(name = "VM_Version::CPU_POPCNT", archs = {"amd64"}) @Stable public long amd64POPCNT;
+ @HotSpotVMConstant(name = "VM_Version::CPU_LZCNT", archs = {"amd64"}) @Stable public long amd64LZCNT;
+ @HotSpotVMConstant(name = "VM_Version::CPU_TSC", archs = {"amd64"}) @Stable public long amd64TSC;
+ @HotSpotVMConstant(name = "VM_Version::CPU_TSCINV", archs = {"amd64"}) @Stable public long amd64TSCINV;
+ @HotSpotVMConstant(name = "VM_Version::CPU_AVX", archs = {"amd64"}) @Stable public long amd64AVX;
+ @HotSpotVMConstant(name = "VM_Version::CPU_AVX2", archs = {"amd64"}) @Stable public long amd64AVX2;
+ @HotSpotVMConstant(name = "VM_Version::CPU_AES", archs = {"amd64"}) @Stable public long amd64AES;
+ @HotSpotVMConstant(name = "VM_Version::CPU_ERMS", archs = {"amd64"}) @Stable public long amd64ERMS;
+ @HotSpotVMConstant(name = "VM_Version::CPU_CLMUL", archs = {"amd64"}) @Stable public long amd64CLMUL;
+ @HotSpotVMConstant(name = "VM_Version::CPU_BMI1", archs = {"amd64"}) @Stable public long amd64BMI1;
+ @HotSpotVMConstant(name = "VM_Version::CPU_BMI2", archs = {"amd64"}) @Stable public long amd64BMI2;
+ @HotSpotVMConstant(name = "VM_Version::CPU_RTM", archs = {"amd64"}) @Stable public long amd64RTM;
+ @HotSpotVMConstant(name = "VM_Version::CPU_ADX", archs = {"amd64"}) @Stable public long amd64ADX;
+ @HotSpotVMConstant(name = "VM_Version::CPU_AVX512F", archs = {"amd64"}) @Stable public long amd64AVX512F;
+ @HotSpotVMConstant(name = "VM_Version::CPU_AVX512DQ", archs = {"amd64"}) @Stable public long amd64AVX512DQ;
+ @HotSpotVMConstant(name = "VM_Version::CPU_AVX512PF", archs = {"amd64"}) @Stable public long amd64AVX512PF;
+ @HotSpotVMConstant(name = "VM_Version::CPU_AVX512ER", archs = {"amd64"}) @Stable public long amd64AVX512ER;
+ @HotSpotVMConstant(name = "VM_Version::CPU_AVX512CD", archs = {"amd64"}) @Stable public long amd64AVX512CD;
+ @HotSpotVMConstant(name = "VM_Version::CPU_AVX512BW", archs = {"amd64"}) @Stable public long amd64AVX512BW;
+ @HotSpotVMConstant(name = "VM_Version::CPU_AVX512VL", archs = {"amd64"}) @Stable public long amd64AVX512VL;
// SPARC specific values
- @HotSpotVMField(name = "VM_Version::_features", type = "int", get = HotSpotVMField.Type.VALUE, archs = {"sparc"}) @Stable public int sparcFeatures;
- @HotSpotVMConstant(name = "VM_Version::vis3_instructions_m", archs = {"sparc"}) @Stable public int vis3Instructions;
- @HotSpotVMConstant(name = "VM_Version::vis2_instructions_m", archs = {"sparc"}) @Stable public int vis2Instructions;
- @HotSpotVMConstant(name = "VM_Version::vis1_instructions_m", archs = {"sparc"}) @Stable public int vis1Instructions;
- @HotSpotVMConstant(name = "VM_Version::cbcond_instructions_m", archs = {"sparc"}) @Stable public int cbcondInstructions;
- @HotSpotVMConstant(name = "VM_Version::v8_instructions_m", archs = {"sparc"}) @Stable public int v8Instructions;
- @HotSpotVMConstant(name = "VM_Version::hardware_mul32_m", archs = {"sparc"}) @Stable public int hardwareMul32;
- @HotSpotVMConstant(name = "VM_Version::hardware_div32_m", archs = {"sparc"}) @Stable public int hardwareDiv32;
- @HotSpotVMConstant(name = "VM_Version::hardware_fsmuld_m", archs = {"sparc"}) @Stable public int hardwareFsmuld;
- @HotSpotVMConstant(name = "VM_Version::hardware_popc_m", archs = {"sparc"}) @Stable public int hardwarePopc;
- @HotSpotVMConstant(name = "VM_Version::v9_instructions_m", archs = {"sparc"}) @Stable public int v9Instructions;
- @HotSpotVMConstant(name = "VM_Version::sun4v_m", archs = {"sparc"}) @Stable public int sun4v;
- @HotSpotVMConstant(name = "VM_Version::blk_init_instructions_m", archs = {"sparc"}) @Stable public int blkInitInstructions;
- @HotSpotVMConstant(name = "VM_Version::fmaf_instructions_m", archs = {"sparc"}) @Stable public int fmafInstructions;
- @HotSpotVMConstant(name = "VM_Version::fmau_instructions_m", archs = {"sparc"}) @Stable public int fmauInstructions;
- @HotSpotVMConstant(name = "VM_Version::sparc64_family_m", archs = {"sparc"}) @Stable public int sparc64Family;
- @HotSpotVMConstant(name = "VM_Version::M_family_m", archs = {"sparc"}) @Stable public int mFamily;
- @HotSpotVMConstant(name = "VM_Version::T_family_m", archs = {"sparc"}) @Stable public int tFamily;
- @HotSpotVMConstant(name = "VM_Version::T1_model_m", archs = {"sparc"}) @Stable public int t1Model;
- @HotSpotVMConstant(name = "VM_Version::sparc5_instructions_m", archs = {"sparc"}) @Stable public int sparc5Instructions;
- @HotSpotVMConstant(name = "VM_Version::aes_instructions_m", archs = {"sparc"}) @Stable public int aesInstructions;
- @HotSpotVMConstant(name = "VM_Version::sha1_instruction_m", archs = {"sparc"}) @Stable public int sha1Instruction;
- @HotSpotVMConstant(name = "VM_Version::sha256_instruction_m", archs = {"sparc"}) @Stable public int sha256Instruction;
- @HotSpotVMConstant(name = "VM_Version::sha512_instruction_m", archs = {"sparc"}) @Stable public int sha512Instruction;
+ @HotSpotVMConstant(name = "VM_Version::vis3_instructions_m", archs = {"sparc"}) @Stable public int sparcVis3Instructions;
+ @HotSpotVMConstant(name = "VM_Version::vis2_instructions_m", archs = {"sparc"}) @Stable public int sparcVis2Instructions;
+ @HotSpotVMConstant(name = "VM_Version::vis1_instructions_m", archs = {"sparc"}) @Stable public int sparcVis1Instructions;
+ @HotSpotVMConstant(name = "VM_Version::cbcond_instructions_m", archs = {"sparc"}) @Stable public int sparcCbcondInstructions;
+ @HotSpotVMConstant(name = "VM_Version::v8_instructions_m", archs = {"sparc"}) @Stable public int sparcV8Instructions;
+ @HotSpotVMConstant(name = "VM_Version::hardware_mul32_m", archs = {"sparc"}) @Stable public int sparcHardwareMul32;
+ @HotSpotVMConstant(name = "VM_Version::hardware_div32_m", archs = {"sparc"}) @Stable public int sparcHardwareDiv32;
+ @HotSpotVMConstant(name = "VM_Version::hardware_fsmuld_m", archs = {"sparc"}) @Stable public int sparcHardwareFsmuld;
+ @HotSpotVMConstant(name = "VM_Version::hardware_popc_m", archs = {"sparc"}) @Stable public int sparcHardwarePopc;
+ @HotSpotVMConstant(name = "VM_Version::v9_instructions_m", archs = {"sparc"}) @Stable public int sparcV9Instructions;
+ @HotSpotVMConstant(name = "VM_Version::sun4v_m", archs = {"sparc"}) @Stable public int sparcSun4v;
+ @HotSpotVMConstant(name = "VM_Version::blk_init_instructions_m", archs = {"sparc"}) @Stable public int sparcBlkInitInstructions;
+ @HotSpotVMConstant(name = "VM_Version::fmaf_instructions_m", archs = {"sparc"}) @Stable public int sparcFmafInstructions;
+ @HotSpotVMConstant(name = "VM_Version::fmau_instructions_m", archs = {"sparc"}) @Stable public int sparcFmauInstructions;
+ @HotSpotVMConstant(name = "VM_Version::sparc64_family_m", archs = {"sparc"}) @Stable public int sparcSparc64Family;
+ @HotSpotVMConstant(name = "VM_Version::M_family_m", archs = {"sparc"}) @Stable public int sparcMFamily;
+ @HotSpotVMConstant(name = "VM_Version::T_family_m", archs = {"sparc"}) @Stable public int sparcTFamily;
+ @HotSpotVMConstant(name = "VM_Version::T1_model_m", archs = {"sparc"}) @Stable public int sparcT1Model;
+ @HotSpotVMConstant(name = "VM_Version::sparc5_instructions_m", archs = {"sparc"}) @Stable public int sparcSparc5Instructions;
+ @HotSpotVMConstant(name = "VM_Version::aes_instructions_m", archs = {"sparc"}) @Stable public int sparcAesInstructions;
+ @HotSpotVMConstant(name = "VM_Version::sha1_instruction_m", archs = {"sparc"}) @Stable public int sparcSha1Instruction;
+ @HotSpotVMConstant(name = "VM_Version::sha256_instruction_m", archs = {"sparc"}) @Stable public int sparcSha256Instruction;
+ @HotSpotVMConstant(name = "VM_Version::sha512_instruction_m", archs = {"sparc"}) @Stable public int sparcSha512Instruction;
@HotSpotVMFlag(name = "UseBlockZeroing", archs = {"sparc"}) @Stable public boolean useBlockZeroing;
@HotSpotVMFlag(name = "BlockZeroingLowLimit", archs = {"sparc"}) @Stable public int blockZeroingLowLimit;
@@ -1054,7 +1030,8 @@ public class HotSpotVMConfig {
@HotSpotVMField(name = "InstanceKlass::_init_state", type = "u1", get = HotSpotVMField.Type.OFFSET) @Stable public int instanceKlassInitStateOffset;
@HotSpotVMField(name = "InstanceKlass::_constants", type = "ConstantPool*", get = HotSpotVMField.Type.OFFSET) @Stable public int instanceKlassConstantsOffset;
@HotSpotVMField(name = "InstanceKlass::_fields", type = "Array*", get = HotSpotVMField.Type.OFFSET) @Stable public int instanceKlassFieldsOffset;
- @HotSpotVMField(name = "InstanceKlass::_vtable_len", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int instanceKlassVtableLengthOffset;
+ @HotSpotVMField(name = "CompilerToVM::Data::InstanceKlass_vtable_start_offset", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int instanceKlassVtableStartOffset;
+ @HotSpotVMField(name = "CompilerToVM::Data::InstanceKlass_vtable_length_offset", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int instanceKlassVtableLengthOffset;
@HotSpotVMConstant(name = "InstanceKlass::linked") @Stable public int instanceKlassStateLinked;
@HotSpotVMConstant(name = "InstanceKlass::fully_initialized") @Stable public int instanceKlassStateFullyInitialized;
@@ -1063,12 +1040,7 @@ public class HotSpotVMConfig {
* See {@code InstanceKlass::vtable_start_offset()}.
*/
public final int instanceKlassVtableStartOffset() {
- return roundUp(instanceKlassSize, heapWordSize);
- }
-
- // TODO use CodeUtil method once it's moved from NumUtil
- private static int roundUp(int number, int mod) {
- return ((number + mod - 1) / mod) * mod;
+ return instanceKlassVtableStartOffset * heapWordSize;
}
@HotSpotVMType(name = "arrayOopDesc", get = HotSpotVMType.Type.SIZE) @Stable public int arrayOopDescSize;
@@ -1100,11 +1072,22 @@ public class HotSpotVMConfig {
@HotSpotVMConstant(name = "FIELDINFO_TAG_SIZE") @Stable public int fieldInfoTagSize;
+ @HotSpotVMConstant(name = "JVM_ACC_MONITOR_MATCH") @Stable public int jvmAccMonitorMatch;
+ @HotSpotVMConstant(name = "JVM_ACC_HAS_MONITOR_BYTECODES") @Stable public int jvmAccHasMonitorBytecodes;
+ @HotSpotVMConstant(name = "JVM_ACC_HAS_FINALIZER") @Stable public int jvmAccHasFinalizer;
@HotSpotVMConstant(name = "JVM_ACC_FIELD_INTERNAL") @Stable public int jvmAccFieldInternal;
@HotSpotVMConstant(name = "JVM_ACC_FIELD_STABLE") @Stable public int jvmAccFieldStable;
@HotSpotVMConstant(name = "JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE") @Stable public int jvmAccFieldHasGenericSignature;
@HotSpotVMConstant(name = "JVM_ACC_WRITTEN_FLAGS") @Stable public int jvmAccWrittenFlags;
+ // Modifier.SYNTHETIC is not public so we get it via vmStructs.
+ @HotSpotVMConstant(name = "JVM_ACC_SYNTHETIC") @Stable public int jvmAccSynthetic;
+
+ /**
+ * @see HotSpotResolvedObjectTypeImpl#createField
+ */
+ @HotSpotVMConstant(name = "JVM_RECOGNIZED_FIELD_MODIFIERS") @Stable public int recognizedFieldModifiers;
+
@HotSpotVMField(name = "Thread::_tlab", type = "ThreadLocalAllocBuffer", get = HotSpotVMField.Type.OFFSET) @Stable public int threadTlabOffset;
@HotSpotVMField(name = "JavaThread::_anchor", type = "JavaFrameAnchor", get = HotSpotVMField.Type.OFFSET) @Stable public int javaThreadAnchorOffset;
@@ -1202,16 +1185,17 @@ public class HotSpotVMConfig {
@HotSpotVMField(name = "OSThread::_interrupted", type = "jint", get = HotSpotVMField.Type.OFFSET) @Stable public int osThreadInterruptedOffset;
- @HotSpotVMConstant(name = "markOopDesc::unlocked_value") @Stable public int unlockedMask;
+ @HotSpotVMConstant(name = "markOopDesc::hash_shift") @Stable public long markOopDescHashShift;
+
@HotSpotVMConstant(name = "markOopDesc::biased_lock_mask_in_place") @Stable public int biasedLockMaskInPlace;
@HotSpotVMConstant(name = "markOopDesc::age_mask_in_place") @Stable public int ageMaskInPlace;
@HotSpotVMConstant(name = "markOopDesc::epoch_mask_in_place") @Stable public int epochMaskInPlace;
-
- @HotSpotVMConstant(name = "markOopDesc::hash_shift") @Stable public long markOopDescHashShift;
@HotSpotVMConstant(name = "markOopDesc::hash_mask") @Stable public long markOopDescHashMask;
@HotSpotVMConstant(name = "markOopDesc::hash_mask_in_place") @Stable public long markOopDescHashMaskInPlace;
+ @HotSpotVMConstant(name = "markOopDesc::unlocked_value") @Stable public int unlockedMask;
@HotSpotVMConstant(name = "markOopDesc::biased_lock_pattern") @Stable public int biasedLockPattern;
+
@HotSpotVMConstant(name = "markOopDesc::no_hash_in_place") @Stable public int markWordNoHashInPlace;
@HotSpotVMConstant(name = "markOopDesc::no_lock_in_place") @Stable public int markWordNoLockInPlace;
@@ -1244,9 +1228,14 @@ public class HotSpotVMConfig {
@HotSpotVMField(name = "Method::_access_flags", type = "AccessFlags", get = HotSpotVMField.Type.OFFSET) @Stable public int methodAccessFlagsOffset;
@HotSpotVMField(name = "Method::_constMethod", type = "ConstMethod*", get = HotSpotVMField.Type.OFFSET) @Stable public int methodConstMethodOffset;
@HotSpotVMField(name = "Method::_intrinsic_id", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int methodIntrinsicIdOffset;
- @HotSpotVMField(name = "Method::_flags", type = "u1", get = HotSpotVMField.Type.OFFSET) @Stable public int methodFlagsOffset;
+ @HotSpotVMField(name = "Method::_flags", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int methodFlagsOffset;
@HotSpotVMField(name = "Method::_vtable_index", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodVtableIndexOffset;
+ @HotSpotVMField(name = "Method::_method_counters", type = "MethodCounters*", get = HotSpotVMField.Type.OFFSET) @Stable public int methodCountersOffset;
+ @HotSpotVMField(name = "Method::_method_data", type = "MethodData*", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataOffset;
+ @HotSpotVMField(name = "Method::_from_compiled_entry", type = "address", get = HotSpotVMField.Type.OFFSET) @Stable public int methodCompiledEntryOffset;
+ @HotSpotVMField(name = "Method::_code", type = "nmethod*", get = HotSpotVMField.Type.OFFSET) @Stable public int methodCodeOffset;
+
@HotSpotVMConstant(name = "Method::_jfr_towrite") @Stable public int methodFlagsJfrTowrite;
@HotSpotVMConstant(name = "Method::_caller_sensitive") @Stable public int methodFlagsCallerSensitive;
@HotSpotVMConstant(name = "Method::_force_inline") @Stable public int methodFlagsForceInline;
@@ -1255,16 +1244,29 @@ public class HotSpotVMConfig {
@HotSpotVMConstant(name = "Method::nonvirtual_vtable_index") @Stable public int nonvirtualVtableIndex;
@HotSpotVMConstant(name = "Method::invalid_vtable_index") @Stable public int invalidVtableIndex;
+ @HotSpotVMField(name = "MethodCounters::_invocation_counter", type = "InvocationCounter", get = HotSpotVMField.Type.OFFSET) @Stable public int invocationCounterOffset;
+ @HotSpotVMField(name = "MethodCounters::_backedge_counter", type = "InvocationCounter", get = HotSpotVMField.Type.OFFSET) @Stable public int backedgeCounterOffset;
+ @HotSpotVMConstant(name = "InvocationCounter::count_increment") @Stable public int invocationCounterIncrement;
+ @HotSpotVMConstant(name = "InvocationCounter::count_shift") @Stable public int invocationCounterShift;
+
+ @HotSpotVMField(name = "MethodData::_size", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataSize;
+ @HotSpotVMField(name = "MethodData::_data_size", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataDataSize;
+ @HotSpotVMField(name = "MethodData::_data[0]", type = "intptr_t", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataOopDataOffset;
+ @HotSpotVMField(name = "MethodData::_trap_hist._array[0]", type = "u1", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataOopTrapHistoryOffset;
+ @HotSpotVMField(name = "MethodData::_jvmci_ir_size", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataIRSizeOffset;
+
+ @HotSpotVMField(name = "nmethod::_verified_entry_point", type = "address", get = HotSpotVMField.Type.OFFSET) @Stable public int nmethodEntryOffset;
+ @HotSpotVMField(name = "nmethod::_comp_level", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int nmethodCompLevelOffset;
+
+ @HotSpotVMConstant(name = "CompLevel_full_optimization") @Stable public int compilationLevelFullOptimization;
+
@HotSpotVMConstant(name = "InvocationEntryBci") @Stable public int invocationEntryBci;
@HotSpotVMField(name = "JVMCIEnv::_task", type = "CompileTask*", get = HotSpotVMField.Type.OFFSET) @Stable public int jvmciEnvTaskOffset;
@HotSpotVMField(name = "JVMCIEnv::_jvmti_can_hotswap_or_post_breakpoint", type = "bool", get = HotSpotVMField.Type.OFFSET) @Stable public int jvmciEnvJvmtiCanHotswapOrPostBreakpointOffset;
@HotSpotVMField(name = "CompileTask::_num_inlined_bytecodes", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int compileTaskNumInlinedBytecodesOffset;
- /**
- * See {@code Method::extra_stack_entries()}.
- */
- @HotSpotVMConstant(name = "Method::extra_stack_entries_for_jsr292") @Stable public int extraStackEntries;
+ @HotSpotVMField(name = "CompilerToVM::Data::Method_extra_stack_entries", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int extraStackEntries;
@HotSpotVMField(name = "ConstMethod::_constants", type = "ConstantPool*", get = HotSpotVMField.Type.OFFSET) @Stable public int constMethodConstantsOffset;
@HotSpotVMField(name = "ConstMethod::_flags", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int constMethodFlagsOffset;
@@ -1325,72 +1327,39 @@ public class HotSpotVMConfig {
@HotSpotVMConstant(name = "HeapWordSize") @Stable public int heapWordSize;
@HotSpotVMType(name = "Symbol*", get = HotSpotVMType.Type.SIZE) @Stable public int symbolPointerSize;
- @HotSpotVMField(name = "Symbol::_length", type = "unsigned short", get = HotSpotVMField.Type.OFFSET) @Stable public int symbolLengthOffset;
- @HotSpotVMField(name = "Symbol::_body[0]", type = "jbyte", get = HotSpotVMField.Type.OFFSET) @Stable public int symbolBodyOffset;
@HotSpotVMField(name = "vmSymbols::_symbols[0]", type = "Symbol*", get = HotSpotVMField.Type.ADDRESS) @Stable public long vmSymbolsSymbols;
@HotSpotVMConstant(name = "vmSymbols::FIRST_SID") @Stable public int vmSymbolsFirstSID;
@HotSpotVMConstant(name = "vmSymbols::SID_LIMIT") @Stable public int vmSymbolsSIDLimit;
- @HotSpotVMConstant(name = "JVM_ACC_HAS_FINALIZER") @Stable public int klassHasFinalizerFlag;
-
- // Modifier.SYNTHETIC is not public so we get it via vmStructs.
- @HotSpotVMConstant(name = "JVM_ACC_SYNTHETIC") @Stable public int syntheticFlag;
-
- /**
- * @see HotSpotResolvedObjectTypeImpl#createField
- */
- @HotSpotVMConstant(name = "JVM_RECOGNIZED_FIELD_MODIFIERS") @Stable public int recognizedFieldModifiers;
-
/**
* Bit pattern that represents a non-oop. Neither the high bits nor the low bits of this value
* are allowed to look like (respectively) the high or low bits of a real oop.
*/
- @HotSpotVMField(name = "Universe::_non_oop_bits", type = "intptr_t", get = HotSpotVMField.Type.VALUE) @Stable public long nonOopBits;
+ @HotSpotVMField(name = "CompilerToVM::Data::Universe_non_oop_bits", type = "void*", get = HotSpotVMField.Type.VALUE) @Stable public long nonOopBits;
@HotSpotVMField(name = "StubRoutines::_verify_oop_count", type = "jint", get = HotSpotVMField.Type.ADDRESS) @Stable public long verifyOopCounterAddress;
- @HotSpotVMField(name = "Universe::_verify_oop_mask", type = "uintptr_t", get = HotSpotVMField.Type.VALUE) @Stable public long verifyOopMask;
- @HotSpotVMField(name = "Universe::_verify_oop_bits", type = "uintptr_t", get = HotSpotVMField.Type.VALUE) @Stable public long verifyOopBits;
- @HotSpotVMField(name = "Universe::_base_vtable_size", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int universeBaseVtableSize;
+ @HotSpotVMField(name = "CompilerToVM::Data::Universe_verify_oop_mask", type = "uintptr_t", get = HotSpotVMField.Type.VALUE) @Stable public long verifyOopMask;
+ @HotSpotVMField(name = "CompilerToVM::Data::Universe_verify_oop_bits", type = "uintptr_t", get = HotSpotVMField.Type.VALUE) @Stable public long verifyOopBits;
+ @HotSpotVMField(name = "CompilerToVM::Data::Universe_base_vtable_size", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int universeBaseVtableSize;
public final int baseVtableLength() {
return universeBaseVtableSize / vtableEntrySize;
}
- @HotSpotVMField(name = "CollectedHeap::_barrier_set", type = "BarrierSet*", get = HotSpotVMField.Type.OFFSET) @Stable public int collectedHeapBarrierSetOffset;
-
@HotSpotVMField(name = "HeapRegion::LogOfHRGrainBytes", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int logOfHRGrainBytes;
- @HotSpotVMField(name = "BarrierSet::_fake_rtti", type = "BarrierSet::FakeRtti", get = HotSpotVMField.Type.OFFSET) @Stable private int barrierSetFakeRttiOffset;
- @HotSpotVMConstant(name = "BarrierSet::CardTableModRef") @Stable public int barrierSetCardTableModRef;
- @HotSpotVMConstant(name = "BarrierSet::CardTableForRS") @Stable public int barrierSetCardTableForRS;
- @HotSpotVMConstant(name = "BarrierSet::CardTableExtension") @Stable public int barrierSetCardTableExtension;
- @HotSpotVMConstant(name = "BarrierSet::G1SATBCT") @Stable public int barrierSetG1SATBCT;
- @HotSpotVMConstant(name = "BarrierSet::G1SATBCTLogging") @Stable public int barrierSetG1SATBCTLogging;
- @HotSpotVMConstant(name = "BarrierSet::ModRef") @Stable public int barrierSetModRef;
-
- @HotSpotVMField(name = "BarrierSet::FakeRtti::_concrete_tag", type = "BarrierSet::Name", get = HotSpotVMField.Type.OFFSET) @Stable private int fakeRttiConcreteTagOffset;
-
- @HotSpotVMField(name = "CardTableModRefBS::byte_map_base", type = "jbyte*", get = HotSpotVMField.Type.OFFSET) @Stable private int cardTableModRefBSByteMapBaseOffset;
- @HotSpotVMConstant(name = "CardTableModRefBS::card_shift") @Stable public int cardTableModRefBSCardShift;
-
@HotSpotVMConstant(name = "CardTableModRefBS::dirty_card") @Stable public byte dirtyCardValue;
@HotSpotVMConstant(name = "G1SATBCardTableModRefBS::g1_young_gen") @Stable public byte g1YoungCardValue;
- private final long cardtableStartAddress;
- private final int cardtableShift;
+ @HotSpotVMField(name = "CompilerToVM::Data::cardtable_start_address", type = "jbyte*", get = HotSpotVMField.Type.VALUE) @Stable private long cardtableStartAddress;
+ @HotSpotVMField(name = "CompilerToVM::Data::cardtable_shift", type = "int", get = HotSpotVMField.Type.VALUE) @Stable private int cardtableShift;
public long cardtableStartAddress() {
- if (cardtableStartAddress == -1) {
- throw JVMCIError.shouldNotReachHere();
- }
return cardtableStartAddress;
}
public int cardtableShift() {
- if (cardtableShift == -1) {
- throw JVMCIError.shouldNotReachHere();
- }
return cardtableShift;
}
@@ -1421,34 +1390,12 @@ public class HotSpotVMConfig {
@HotSpotVMField(name = "java_lang_Class::_klass_offset", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int klassOffset;
@HotSpotVMField(name = "java_lang_Class::_array_klass_offset", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int arrayKlassOffset;
- @HotSpotVMField(name = "Method::_method_counters", type = "MethodCounters*", get = HotSpotVMField.Type.OFFSET) @Stable public int methodCountersOffset;
- @HotSpotVMField(name = "Method::_method_data", type = "MethodData*", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataOffset;
- @HotSpotVMField(name = "Method::_from_compiled_entry", type = "address", get = HotSpotVMField.Type.OFFSET) @Stable public int methodCompiledEntryOffset;
- @HotSpotVMField(name = "Method::_code", type = "nmethod*", get = HotSpotVMField.Type.OFFSET) @Stable public int methodCodeOffset;
-
- @HotSpotVMField(name = "MethodCounters::_invocation_counter", type = "InvocationCounter", get = HotSpotVMField.Type.OFFSET) @Stable public int invocationCounterOffset;
- @HotSpotVMField(name = "MethodCounters::_backedge_counter", type = "InvocationCounter", get = HotSpotVMField.Type.OFFSET) @Stable public int backedgeCounterOffset;
- @HotSpotVMConstant(name = "InvocationCounter::count_increment") @Stable public int invocationCounterIncrement;
- @HotSpotVMConstant(name = "InvocationCounter::count_shift") @Stable public int invocationCounterShift;
-
- @HotSpotVMField(name = "MethodData::_size", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataSize;
- @HotSpotVMField(name = "MethodData::_data_size", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataDataSize;
- @HotSpotVMField(name = "MethodData::_data[0]", type = "intptr_t", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataOopDataOffset;
- @HotSpotVMField(name = "MethodData::_trap_hist._array[0]", type = "u1", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataOopTrapHistoryOffset;
- @HotSpotVMField(name = "MethodData::_jvmci_ir_size", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataIRSizeOffset;
-
- @HotSpotVMField(name = "nmethod::_verified_entry_point", type = "address", get = HotSpotVMField.Type.OFFSET) @Stable public int nmethodEntryOffset;
- @HotSpotVMField(name = "nmethod::_comp_level", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int nmethodCompLevelOffset;
-
- @HotSpotVMConstant(name = "CompLevel_full_optimization") @Stable public int compilationLevelFullOptimization;
-
@HotSpotVMType(name = "BasicLock", get = HotSpotVMType.Type.SIZE) @Stable public int basicLockSize;
@HotSpotVMField(name = "BasicLock::_displaced_header", type = "markOop", get = HotSpotVMField.Type.OFFSET) @Stable public int basicLockDisplacedHeaderOffset;
@HotSpotVMField(name = "Thread::_allocated_bytes", type = "jlong", get = HotSpotVMField.Type.OFFSET) @Stable public int threadAllocatedBytesOffset;
@HotSpotVMFlag(name = "TLABWasteIncrement") @Stable public int tlabRefillWasteIncrement;
- @HotSpotVMManual(name = "ThreadLocalAllocBuffer::alignment_reserve()") @Stable public int tlabAlignmentReserve;
@HotSpotVMField(name = "ThreadLocalAllocBuffer::_start", type = "HeapWord*", get = HotSpotVMField.Type.OFFSET) @Stable private int threadLocalAllocBufferStartOffset;
@HotSpotVMField(name = "ThreadLocalAllocBuffer::_end", type = "HeapWord*", get = HotSpotVMField.Type.OFFSET) @Stable private int threadLocalAllocBufferEndOffset;
@@ -1496,22 +1443,14 @@ public class HotSpotVMConfig {
return threadTlabOffset + threadLocalAllocBufferPfTopOffset;
}
- /**
- * See: {@code ThreadLocalAllocBuffer::end_reserve()}.
- */
- public final int threadLocalAllocBufferEndReserve() {
- final int typeSizeInBytes = roundUp(arrayOopDescLengthOffset() + Integer.BYTES, heapWordSize);
- // T_INT arrays need not be 8 byte aligned.
- final int reserveSize = typeSizeInBytes / heapWordSize;
- return Integer.max(reserveSize, abstractVmVersionReserveForAllocationPrefetch);
- }
+ @HotSpotVMField(name = "CompilerToVM::Data::ThreadLocalAllocBuffer_alignment_reserve", type = "size_t", get = HotSpotVMField.Type.VALUE) @Stable public int tlabAlignmentReserve;
@HotSpotVMFlag(name = "TLABStats") @Stable public boolean tlabStats;
// FIXME This is only temporary until the GC code is changed.
- @HotSpotVMField(name = "CompilerToVM::_supports_inline_contig_alloc", type = "bool", get = HotSpotVMField.Type.VALUE) @Stable public boolean inlineContiguousAllocationSupported;
- @HotSpotVMField(name = "CompilerToVM::_heap_end_addr", type = "HeapWord**", get = HotSpotVMField.Type.VALUE) @Stable public long heapEndAddress;
- @HotSpotVMField(name = "CompilerToVM::_heap_top_addr", type = "HeapWord**", get = HotSpotVMField.Type.VALUE) @Stable public long heapTopAddress;
+ @HotSpotVMField(name = "CompilerToVM::Data::_supports_inline_contig_alloc", type = "bool", get = HotSpotVMField.Type.VALUE) @Stable public boolean inlineContiguousAllocationSupported;
+ @HotSpotVMField(name = "CompilerToVM::Data::_heap_end_addr", type = "HeapWord**", get = HotSpotVMField.Type.VALUE) @Stable public long heapEndAddress;
+ @HotSpotVMField(name = "CompilerToVM::Data::_heap_top_addr", type = "HeapWord**", get = HotSpotVMField.Type.VALUE) @Stable public long heapTopAddress;
/**
* The DataLayout header size is the same as the cell size.
@@ -1542,19 +1481,11 @@ public class HotSpotVMConfig {
@HotSpotVMFlag(name = "TypeProfileWidth") @Stable public int typeProfileWidth;
@HotSpotVMFlag(name = "MethodProfileWidth") @Stable public int methodProfileWidth;
- @HotSpotVMField(name = "CodeBlob::_code_offset", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable private int codeBlobCodeOffsetOffset;
- @HotSpotVMField(name = "DeoptimizationBlob::_unpack_offset", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable private int deoptimizationBlobUnpackOffsetOffset;
- @HotSpotVMField(name = "DeoptimizationBlob::_uncommon_trap_offset", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable private int deoptimizationBlobUncommonTrapOffsetOffset;
+ @HotSpotVMField(name = "CompilerToVM::Data::SharedRuntime_ic_miss_stub", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long inlineCacheMissStub;
+ @HotSpotVMField(name = "CompilerToVM::Data::SharedRuntime_handle_wrong_method_stub", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long handleWrongMethodStub;
- @HotSpotVMField(name = "SharedRuntime::_ic_miss_blob", type = "RuntimeStub*", get = HotSpotVMField.Type.VALUE) @Stable private long inlineCacheMissBlob;
- @HotSpotVMField(name = "SharedRuntime::_wrong_method_blob", type = "RuntimeStub*", get = HotSpotVMField.Type.VALUE) @Stable private long wrongMethodBlob;
- @HotSpotVMField(name = "SharedRuntime::_deopt_blob", type = "DeoptimizationBlob*", get = HotSpotVMField.Type.VALUE) @Stable private long deoptBlob;
-
- @HotSpotVMManual(name = "SharedRuntime::get_ic_miss_stub()") public final long inlineCacheMissStub;
- @HotSpotVMManual(name = "SharedRuntime::get_handle_wrong_method_stub()") public final long handleWrongMethodStub;
-
- @HotSpotVMManual(name = "SharedRuntime::deopt_blob()->unpack()") public final long handleDeoptStub;
- @HotSpotVMManual(name = "SharedRuntime::deopt_blob()->uncommon_trap()") public final long uncommonTrapStub;
+ @HotSpotVMField(name = "CompilerToVM::Data::SharedRuntime_deopt_blob_unpack", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long handleDeoptStub;
+ @HotSpotVMField(name = "CompilerToVM::Data::SharedRuntime_deopt_blob_uncommon_trap", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long uncommonTrapStub;
@HotSpotVMField(name = "CodeCache::_low_bound", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long codeCacheLowBound;
@HotSpotVMField(name = "CodeCache::_high_bound", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long codeCacheHighBound;
@@ -1717,9 +1648,6 @@ public class HotSpotVMConfig {
return "unknown";
}
- @HotSpotVMConstant(name = "CompilerToVM::KLASS_TAG") @Stable public int compilerToVMKlassTag;
- @HotSpotVMConstant(name = "CompilerToVM::SYMBOL_TAG") @Stable public int compilerToVMSymbolTag;
-
// Checkstyle: stop
@HotSpotVMConstant(name = "CodeInstaller::VERIFIED_ENTRY") @Stable public int MARKID_VERIFIED_ENTRY;
@HotSpotVMConstant(name = "CodeInstaller::UNVERIFIED_ENTRY") @Stable public int MARKID_UNVERIFIED_ENTRY;
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/Stable.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/Stable.java
index e386dc0ca77..f313238bf41 100644
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/Stable.java
+++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/Stable.java
@@ -29,7 +29,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
- * This annotation functions as an alias for the java.lang.invoke.Stable annotation within JVMCI
+ * This annotation functions as an alias for the jdk.internal.vm.annotation.Stable annotation within JVMCI
* code. It is specially recognized during class file parsing in the same way as that annotation.
*/
@Target(ElementType.FIELD)
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.inittimer/src/jdk/vm/ci/inittimer/InitTimer.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.inittimer/src/jdk/vm/ci/inittimer/InitTimer.java
index 608285e7e92..921b537bfb1 100644
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.inittimer/src/jdk/vm/ci/inittimer/InitTimer.java
+++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.inittimer/src/jdk/vm/ci/inittimer/InitTimer.java
@@ -22,6 +22,8 @@
*/
package jdk.vm.ci.inittimer;
+import java.util.concurrent.atomic.AtomicInteger;
+
/**
* A facility for timing a step in the runtime initialization sequence. This is independent from all
* other JVMCI code so as to not perturb the initialization sequence. It is enabled by setting the
@@ -32,18 +34,26 @@ public final class InitTimer implements AutoCloseable {
final long start;
private InitTimer(String name) {
+ int n = nesting.getAndIncrement();
+ if (n == 0) {
+ initializingThread = Thread.currentThread();
+ System.out.println("INITIALIZING THREAD: " + initializingThread);
+ } else {
+ assert Thread.currentThread() == initializingThread : Thread.currentThread() + " != " + initializingThread;
+ }
this.name = name;
this.start = System.currentTimeMillis();
- System.out.println("START: " + SPACES.substring(0, timerDepth * 2) + name);
- assert Thread.currentThread() == initializingThread : Thread.currentThread() + " != " + initializingThread;
- timerDepth++;
+ System.out.println("START: " + SPACES.substring(0, n * 2) + name);
}
@SuppressFBWarnings(value = "ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD", justification = "only the initializing thread accesses this field")
public void close() {
final long end = System.currentTimeMillis();
- timerDepth--;
- System.out.println(" DONE: " + SPACES.substring(0, timerDepth * 2) + name + " [" + (end - start) + " ms]");
+ int n = nesting.decrementAndGet();
+ System.out.println(" DONE: " + SPACES.substring(0, n * 2) + name + " [" + (end - start) + " ms]");
+ if (n == 0) {
+ initializingThread = null;
+ }
}
public static InitTimer timer(String name) {
@@ -59,19 +69,11 @@ public final class InitTimer implements AutoCloseable {
*/
private static final boolean ENABLED = Boolean.getBoolean("jvmci.inittimer") || Boolean.getBoolean("jvmci.runtime.TimeInit");
- public static int timerDepth = 0;
+ public static final AtomicInteger nesting = ENABLED ? new AtomicInteger() : null;
public static final String SPACES = " ";
/**
- * Used to assert the invariant that all initialization happens on the same thread.
+ * Used to assert the invariant that all related initialization happens on the same thread.
*/
- public static final Thread initializingThread;
- static {
- if (ENABLED) {
- initializingThread = Thread.currentThread();
- System.out.println("INITIALIZING THREAD: " + initializingThread);
- } else {
- initializingThread = null;
- }
- }
+ public static Thread initializingThread;
}
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ConstantReflectionProvider.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ConstantReflectionProvider.java
index 1db2b98c7ea..33cc2a27ebc 100644
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ConstantReflectionProvider.java
+++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ConstantReflectionProvider.java
@@ -80,29 +80,31 @@ public interface ConstantReflectionProvider {
* @return the constant value of this field or {@code null} if this field is not considered
* constant by the runtime
*/
- JavaConstant readConstantFieldValue(JavaField field, JavaConstant receiver);
+ JavaConstant readConstantFieldValue(ResolvedJavaField field, JavaConstant receiver);
/**
* Gets the current value of this field for a given object, if available.
*
* There is no guarantee that the same value will be returned by this method for a field unless
- * the field is considered to be {@linkplain #readConstantFieldValue(JavaField, JavaConstant)
- * constant} by the runtime.
+ * the field is considered to be
+ * {@linkplain #readConstantFieldValue(ResolvedJavaField, JavaConstant) constant} by the
+ * runtime.
*
* @param receiver object from which this field's value is to be read. This value is ignored if
* this field is static.
* @return the value of this field or {@code null} if the value is not available (e.g., because
* the field holder is not yet initialized).
*/
- JavaConstant readFieldValue(JavaField field, JavaConstant receiver);
+ JavaConstant readFieldValue(ResolvedJavaField field, JavaConstant receiver);
/**
* Gets the current value of this field for a given object, if available. Like
- * {@link #readFieldValue(JavaField, JavaConstant)} but treats array fields as stable.
+ * {@link #readFieldValue(ResolvedJavaField, JavaConstant)} but treats array fields as stable.
*
* There is no guarantee that the same value will be returned by this method for a field unless
- * the field is considered to be {@linkplain #readConstantFieldValue(JavaField, JavaConstant)
- * constant} by the runtime.
+ * the field is considered to be
+ * {@linkplain #readConstantFieldValue(ResolvedJavaField, JavaConstant) constant} by the
+ * runtime.
*
* @param receiver object from which this field's value is to be read. This value is ignored if
* this field is static.
@@ -110,7 +112,7 @@ public interface ConstantReflectionProvider {
* @return the value of this field or {@code null} if the value is not available (e.g., because
* the field holder is not yet initialized).
*/
- JavaConstant readStableFieldValue(JavaField field, JavaConstant receiver, boolean isDefaultStable);
+ JavaConstant readStableFieldValue(ResolvedJavaField field, JavaConstant receiver, boolean isDefaultStable);
/**
* Converts the given {@link JavaKind#isPrimitive() primitive} constant to a boxed
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options.processor/src/META-INF/services/javax.annotation.processing.Processor b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options.processor/src/META-INF/services/javax.annotation.processing.Processor
deleted file mode 100644
index 3aab30fa3c7..00000000000
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options.processor/src/META-INF/services/javax.annotation.processing.Processor
+++ /dev/null
@@ -1 +0,0 @@
-jdk.vm.ci.options.processor.OptionProcessor
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options.processor/src/jdk/vm/ci/options/processor/OptionProcessor.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options.processor/src/jdk/vm/ci/options/processor/OptionProcessor.java
deleted file mode 100644
index 95422c24135..00000000000
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options.processor/src/jdk/vm/ci/options/processor/OptionProcessor.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
- * Copyright (c) 2013, 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.
- */
-package jdk.vm.ci.options.processor;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.annotation.processing.AbstractProcessor;
-import javax.annotation.processing.Filer;
-import javax.annotation.processing.RoundEnvironment;
-import javax.annotation.processing.SupportedAnnotationTypes;
-import javax.lang.model.SourceVersion;
-import javax.lang.model.element.Element;
-import javax.lang.model.element.ElementKind;
-import javax.lang.model.element.Modifier;
-import javax.lang.model.element.Name;
-import javax.lang.model.element.PackageElement;
-import javax.lang.model.element.TypeElement;
-import javax.lang.model.element.VariableElement;
-import javax.lang.model.type.DeclaredType;
-import javax.lang.model.type.TypeKind;
-import javax.lang.model.type.TypeMirror;
-import javax.lang.model.util.Elements;
-import javax.lang.model.util.Types;
-import javax.tools.Diagnostic.Kind;
-import javax.tools.JavaFileObject;
-
-import jdk.vm.ci.options.Option;
-import jdk.vm.ci.options.OptionDescriptor;
-import jdk.vm.ci.options.OptionDescriptors;
-import jdk.vm.ci.options.OptionValue;
-
-/**
- * Processes static fields annotated with {@link Option}. An {@link OptionDescriptors}
- * implementation is generated for each top level class containing at least one such field. The name
- * of the generated class for top level class {@code com.foo.Bar} is
- * {@code com.foo.Bar_OptionDescriptors}.
- */
-@SupportedAnnotationTypes({"jdk.vm.ci.options.Option"})
-public class OptionProcessor extends AbstractProcessor {
-
- @Override
- public SourceVersion getSupportedSourceVersion() {
- return SourceVersion.latest();
- }
-
- private final Set processed = new HashSet<>();
-
- private void processElement(Element element, OptionsInfo info) {
-
- if (!element.getModifiers().contains(Modifier.STATIC)) {
- processingEnv.getMessager().printMessage(Kind.ERROR, "Option field must be static", element);
- return;
- }
-
- Option annotation = element.getAnnotation(Option.class);
- assert annotation != null;
- assert element instanceof VariableElement;
- assert element.getKind() == ElementKind.FIELD;
- VariableElement field = (VariableElement) element;
- String fieldName = field.getSimpleName().toString();
-
- Elements elements = processingEnv.getElementUtils();
- Types types = processingEnv.getTypeUtils();
-
- TypeMirror fieldType = field.asType();
- if (fieldType.getKind() != TypeKind.DECLARED) {
- processingEnv.getMessager().printMessage(Kind.ERROR, "Option field must be of type " + OptionValue.class.getName(), element);
- return;
- }
- DeclaredType declaredFieldType = (DeclaredType) fieldType;
-
- TypeMirror optionValueType = elements.getTypeElement(OptionValue.class.getName()).asType();
- if (!types.isSubtype(fieldType, types.erasure(optionValueType))) {
- String msg = String.format("Option field type %s is not a subclass of %s", fieldType, optionValueType);
- processingEnv.getMessager().printMessage(Kind.ERROR, msg, element);
- return;
- }
-
- if (!field.getModifiers().contains(Modifier.STATIC)) {
- processingEnv.getMessager().printMessage(Kind.ERROR, "Option field must be static", element);
- return;
- }
-
- String help = annotation.help();
- if (help.length() != 0) {
- char firstChar = help.charAt(0);
- if (!Character.isUpperCase(firstChar)) {
- processingEnv.getMessager().printMessage(Kind.ERROR, "Option help text must start with upper case letter", element);
- return;
- }
- }
-
- String optionName = annotation.name();
- if (optionName.equals("")) {
- optionName = fieldName;
- }
-
- DeclaredType declaredOptionValueType = declaredFieldType;
- while (!types.isSameType(types.erasure(declaredOptionValueType), types.erasure(optionValueType))) {
- List extends TypeMirror> directSupertypes = types.directSupertypes(declaredFieldType);
- assert !directSupertypes.isEmpty();
- declaredOptionValueType = (DeclaredType) directSupertypes.get(0);
- }
-
- assert !declaredOptionValueType.getTypeArguments().isEmpty();
- String optionType = declaredOptionValueType.getTypeArguments().get(0).toString();
- if (optionType.startsWith("java.lang.")) {
- optionType = optionType.substring("java.lang.".length());
- }
-
- Element enclosing = element.getEnclosingElement();
- String declaringClass = "";
- String separator = "";
- Set originatingElementsList = info.originatingElements;
- originatingElementsList.add(field);
- while (enclosing != null) {
- if (enclosing.getKind() == ElementKind.CLASS || enclosing.getKind() == ElementKind.INTERFACE) {
- if (enclosing.getModifiers().contains(Modifier.PRIVATE)) {
- String msg = String.format("Option field cannot be declared in a private %s %s", enclosing.getKind().name().toLowerCase(), enclosing);
- processingEnv.getMessager().printMessage(Kind.ERROR, msg, element);
- return;
- }
- originatingElementsList.add(enclosing);
- declaringClass = enclosing.getSimpleName() + separator + declaringClass;
- separator = ".";
- } else {
- assert enclosing.getKind() == ElementKind.PACKAGE;
- }
- enclosing = enclosing.getEnclosingElement();
- }
-
- info.options.add(new OptionInfo(optionName, help, optionType, declaringClass, field));
- }
-
- private void createFiles(OptionsInfo info) {
- String pkg = ((PackageElement) info.topDeclaringType.getEnclosingElement()).getQualifiedName().toString();
- Name topDeclaringClass = info.topDeclaringType.getSimpleName();
- Element[] originatingElements = info.originatingElements.toArray(new Element[info.originatingElements.size()]);
-
- createOptionsDescriptorsFile(info, pkg, topDeclaringClass, originatingElements);
- }
-
- private void createOptionsDescriptorsFile(OptionsInfo info, String pkg, Name topDeclaringClass, Element[] originatingElements) {
- String optionsClassName = topDeclaringClass + "_" + OptionDescriptors.class.getSimpleName();
-
- Filer filer = processingEnv.getFiler();
- try (PrintWriter out = createSourceFile(pkg, optionsClassName, filer, originatingElements)) {
-
- out.println("// CheckStyle: stop header check");
- out.println("// CheckStyle: stop line length check");
- out.println("// GENERATED CONTENT - DO NOT EDIT");
- out.println("// Source: " + topDeclaringClass + ".java");
- out.println("package " + pkg + ";");
- out.println("");
- out.println("import java.util.*;");
- out.println("import " + OptionDescriptors.class.getPackage().getName() + ".*;");
- out.println("");
- out.println("public class " + optionsClassName + " implements " + OptionDescriptors.class.getSimpleName() + " {");
-
- String desc = OptionDescriptor.class.getSimpleName();
-
- boolean needPrivateFieldAccessor = false;
- int i = 0;
- Collections.sort(info.options);
-
- out.println(" @Override");
- out.println(" public OptionDescriptor get(String value) {");
- out.println(" // CheckStyle: stop line length check");
- if (info.options.size() == 1) {
- out.println(" if (value.equals(\"" + info.options.get(0).name + "\")) {");
- } else {
- out.println(" switch (value) {");
- }
- for (OptionInfo option : info.options) {
- String name = option.name;
- String optionValue;
- if (option.field.getModifiers().contains(Modifier.PRIVATE)) {
- needPrivateFieldAccessor = true;
- optionValue = "field(" + option.declaringClass + ".class, \"" + option.field.getSimpleName() + "\")";
- } else {
- optionValue = option.declaringClass + "." + option.field.getSimpleName();
- }
- String type = option.type;
- String help = option.help;
- String declaringClass = option.declaringClass;
- Name fieldName = option.field.getSimpleName();
- if (info.options.size() == 1) {
- out.printf(" return %s.create(\"%s\", %s.class, \"%s\", %s.class, \"%s\", %s);\n", desc, name, type, help, declaringClass, fieldName, optionValue);
- } else {
- out.printf(" case \"" + name + "\": return %s.create(\"%s\", %s.class, \"%s\", %s.class, \"%s\", %s);\n", desc, name, type, help, declaringClass, fieldName, optionValue);
- }
- }
- out.println(" }");
- out.println(" // CheckStyle: resume line length check");
- out.println(" return null;");
- out.println(" }");
- out.println();
- out.println(" @Override");
- out.println(" public Iterator<" + desc + "> iterator() {");
- out.println(" // CheckStyle: stop line length check");
- out.println(" List<" + desc + "> options = Arrays.asList(");
- for (OptionInfo option : info.options) {
- String optionValue;
- if (option.field.getModifiers().contains(Modifier.PRIVATE)) {
- needPrivateFieldAccessor = true;
- optionValue = "field(" + option.declaringClass + ".class, \"" + option.field.getSimpleName() + "\")";
- } else {
- optionValue = option.declaringClass + "." + option.field.getSimpleName();
- }
- String name = option.name;
- String type = option.type;
- String help = option.help;
- String declaringClass = option.declaringClass;
- Name fieldName = option.field.getSimpleName();
- String comma = i == info.options.size() - 1 ? "" : ",";
- out.printf(" %s.create(\"%s\", %s.class, \"%s\", %s.class, \"%s\", %s)%s\n", desc, name, type, help, declaringClass, fieldName, optionValue, comma);
- i++;
- }
- out.println(" );");
- out.println(" // CheckStyle: resume line length check");
- out.println(" return options.iterator();");
- out.println(" }");
- if (needPrivateFieldAccessor) {
- out.println(" private static " + OptionValue.class.getSimpleName() + "> field(Class> declaringClass, String fieldName) {");
- out.println(" try {");
- out.println(" java.lang.reflect.Field field = declaringClass.getDeclaredField(fieldName);");
- out.println(" field.setAccessible(true);");
- out.println(" return (" + OptionValue.class.getSimpleName() + ">) field.get(null);");
- out.println(" } catch (Exception e) {");
- out.println(" throw (InternalError) new InternalError().initCause(e);");
- out.println(" }");
- out.println(" }");
- }
- out.println("}");
- }
- }
-
- protected PrintWriter createSourceFile(String pkg, String relativeName, Filer filer, Element... originatingElements) {
- try {
- // Ensure Unix line endings to comply with code style guide checked by Checkstyle
- JavaFileObject sourceFile = filer.createSourceFile(pkg + "." + relativeName, originatingElements);
- return new PrintWriter(sourceFile.openWriter()) {
-
- @Override
- public void println() {
- print("\n");
- }
- };
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- static class OptionInfo implements Comparable {
-
- final String name;
- final String help;
- final String type;
- final String declaringClass;
- final VariableElement field;
-
- public OptionInfo(String name, String help, String type, String declaringClass, VariableElement field) {
- this.name = name;
- this.help = help;
- this.type = type;
- this.declaringClass = declaringClass;
- this.field = field;
- }
-
- @Override
- public int compareTo(OptionInfo other) {
- return name.compareTo(other.name);
- }
-
- @Override
- public String toString() {
- return declaringClass + "." + field;
- }
- }
-
- static class OptionsInfo {
-
- final Element topDeclaringType;
- final List options = new ArrayList<>();
- final Set originatingElements = new HashSet<>();
-
- public OptionsInfo(Element topDeclaringType) {
- this.topDeclaringType = topDeclaringType;
- }
- }
-
- private static Element topDeclaringType(Element element) {
- Element enclosing = element.getEnclosingElement();
- if (enclosing == null || enclosing.getKind() == ElementKind.PACKAGE) {
- assert element.getKind() == ElementKind.CLASS || element.getKind() == ElementKind.INTERFACE;
- return element;
- }
- return topDeclaringType(enclosing);
- }
-
- @Override
- public boolean process(Set extends TypeElement> annotations, RoundEnvironment roundEnv) {
- if (roundEnv.processingOver()) {
- return true;
- }
-
- Map map = new HashMap<>();
- for (Element element : roundEnv.getElementsAnnotatedWith(Option.class)) {
- if (!processed.contains(element)) {
- processed.add(element);
- Element topDeclaringType = topDeclaringType(element);
- OptionsInfo options = map.get(topDeclaringType);
- if (options == null) {
- options = new OptionsInfo(topDeclaringType);
- map.put(topDeclaringType, options);
- }
- processElement(element, options);
- }
- }
-
- boolean ok = true;
- Map uniqueness = new HashMap<>();
- for (OptionsInfo info : map.values()) {
- for (OptionInfo option : info.options) {
- OptionInfo conflict = uniqueness.put(option.name, option);
- if (conflict != null) {
- processingEnv.getMessager().printMessage(Kind.ERROR, "Duplicate option names for " + option + " and " + conflict, option.field);
- ok = false;
- }
- }
- }
-
- if (ok) {
- for (OptionsInfo info : map.values()) {
- createFiles(info);
- }
- }
-
- return true;
- }
-}
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options/src/jdk/vm/ci/options/DerivedOptionValue.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options/src/jdk/vm/ci/options/DerivedOptionValue.java
deleted file mode 100644
index e6149955c77..00000000000
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options/src/jdk/vm/ci/options/DerivedOptionValue.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2014, 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.
- */
-package jdk.vm.ci.options;
-
-import java.io.Serializable;
-import java.util.function.Supplier;
-
-import jdk.vm.ci.options.OptionValue.OverrideScope;
-
-/**
- * A cached value that needs to be recomputed when an option changes.
- */
-public class DerivedOptionValue {
-
- public interface OptionSupplier extends Supplier, Serializable {
- }
-
- private final T initialValue;
- private final OptionSupplier supplier;
-
- public DerivedOptionValue(OptionSupplier supplier) {
- this.supplier = supplier;
- assert OptionValue.getOverrideScope() == null : "derived option value should be initialized outside any override scope";
- this.initialValue = createValue();
- }
-
- public T getValue() {
- OverrideScope overrideScope = OptionValue.getOverrideScope();
- if (overrideScope != null) {
- return overrideScope.getDerived(this);
- } else {
- return initialValue;
- }
- }
-
- T createValue() {
- return supplier.get();
- }
-}
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options/src/jdk/vm/ci/options/NestedBooleanOptionValue.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options/src/jdk/vm/ci/options/NestedBooleanOptionValue.java
deleted file mode 100644
index 804603814f1..00000000000
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options/src/jdk/vm/ci/options/NestedBooleanOptionValue.java
+++ /dev/null
@@ -1,58 +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.
- */
-package jdk.vm.ci.options;
-
-/**
- * A nested Boolean {@link OptionValue} that can be overridden by a {@link #masterOption master
- * option}.
- *
- *
If the option is present on the command line the specified value is used.
- *
Otherwise {@link #getValue()} depends on the {@link #masterOption} and evaluates as follows:
- *
- *
If {@link #masterOption} is set, this value equals to {@link #initialValue}.
- *
Otherwise, if {@link #masterOption} is {@code false}, this option is {@code false}.
- */
-public class NestedBooleanOptionValue extends OptionValue {
- private final OptionValue masterOption;
- private final Boolean initialValue;
-
- public NestedBooleanOptionValue(OptionValue masterOption, Boolean initialValue) {
- super(null);
- this.masterOption = masterOption;
- this.initialValue = initialValue;
- }
-
- public OptionValue getMasterOption() {
- return masterOption;
- }
-
- @Override
- public Boolean getValue() {
- Boolean v = super.getValue();
- if (v == null) {
- return initialValue && masterOption.getValue();
- }
- return v;
- }
-
-}
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options/src/jdk/vm/ci/options/OptionDescriptor.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options/src/jdk/vm/ci/options/OptionDescriptor.java
deleted file mode 100644
index b0bde8a71e0..00000000000
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options/src/jdk/vm/ci/options/OptionDescriptor.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 2013, 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.
- */
-package jdk.vm.ci.options;
-
-/**
- * Describes the attributes of a static field {@linkplain Option option} and provides access to its
- * {@linkplain OptionValue value}.
- */
-public final class OptionDescriptor {
-
- protected final String name;
- protected final Class> type;
- protected final String help;
- protected final OptionValue> option;
- protected final Class> declaringClass;
- protected final String fieldName;
-
- public static OptionDescriptor create(String name, Class> type, String help, Class> declaringClass, String fieldName, OptionValue> option) {
- OptionDescriptor result = option.getDescriptor();
- if (result == null) {
- result = new OptionDescriptor(name, type, help, declaringClass, fieldName, option);
- option.setDescriptor(result);
- }
- assert result.name.equals(name) && result.type == type && result.declaringClass == declaringClass && result.fieldName.equals(fieldName) && result.option == option;
- return result;
- }
-
- private OptionDescriptor(String name, Class> type, String help, Class> declaringClass, String fieldName, OptionValue> option) {
- this.name = name;
- this.type = type;
- this.help = help;
- this.option = option;
- this.declaringClass = declaringClass;
- this.fieldName = fieldName;
- assert !type.isPrimitive() : "must used boxed type instead of " + type;
- }
-
- /**
- * Gets the type of values stored in the option. This will be the boxed type for a primitive
- * option.
- */
- public Class> getType() {
- return type;
- }
-
- /**
- * Gets a descriptive help message for the option.
- */
- public String getHelp() {
- return help;
- }
-
- /**
- * Gets the name of the option. It's up to the client of this object how to use the name to get
- * a user specified value for the option from the environment.
- */
- public String getName() {
- return name;
- }
-
- /**
- * Gets the boxed option value.
- */
- public OptionValue> getOptionValue() {
- return option;
- }
-
- public Class> getDeclaringClass() {
- return declaringClass;
- }
-
- public String getFieldName() {
- return fieldName;
- }
-
- /**
- * Gets a description of the location where this option is stored.
- */
- public String getLocation() {
- return getDeclaringClass().getName() + "." + getFieldName();
- }
-}
diff --git a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options/src/jdk/vm/ci/options/OptionValue.java b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options/src/jdk/vm/ci/options/OptionValue.java
deleted file mode 100644
index 6abcc91d936..00000000000
--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.options/src/jdk/vm/ci/options/OptionValue.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- * Copyright (c) 2013, 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.
- */
-package jdk.vm.ci.options;
-
-import java.io.PrintStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-
-/**
- * An option value.
- */
-public class OptionValue {
- /**
- * Temporarily changes the value for an option. The {@linkplain OptionValue#getValue() value} of
- * {@code option} is set to {@code value} until {@link OverrideScope#close()} is called on the
- * object returned by this method.
- *
- * Since the returned object is {@link AutoCloseable} the try-with-resource construct can be
- * used:
- *
- *
- * try (OverrideScope s = OptionValue.override(myOption, myValue) {
- * // code that depends on myOption == myValue
- * }
- *
- */
- public static OverrideScope override(OptionValue> option, Object value) {
- OverrideScope current = getOverrideScope();
- if (current == null) {
- if (!value.equals(option.getValue())) {
- return new SingleOverrideScope(option, value);
- }
- Map, Object> overrides = Collections.emptyMap();
- return new MultipleOverridesScope(current, overrides);
- }
- return new MultipleOverridesScope(current, option, value);
- }
-
- /**
- * Temporarily changes the values for a set of options. The {@linkplain OptionValue#getValue()
- * value} of each {@code option} in {@code overrides} is set to the corresponding {@code value}
- * in {@code overrides} until {@link OverrideScope#close()} is called on the object returned by
- * this method.
- *
- * Since the returned object is {@link AutoCloseable} the try-with-resource construct can be
- * used:
- *
- *
- * Map<OptionValue, Object> overrides = new HashMap<>();
- * overrides.put(myOption1, myValue1);
- * overrides.put(myOption2, myValue2);
- * try (OverrideScope s = OptionValue.override(overrides) {
- * // code that depends on myOption == myValue
- * }
- *
- */
- public static OverrideScope override(Map, Object> overrides) {
- OverrideScope current = getOverrideScope();
- if (current == null && overrides.size() == 1) {
- Entry, Object> single = overrides.entrySet().iterator().next();
- OptionValue> option = single.getKey();
- Object overrideValue = single.getValue();
- if (!overrideValue.equals(option.getValue())) {
- return new SingleOverrideScope(option, overrideValue);
- }
- }
- return new MultipleOverridesScope(current, overrides);
- }
-
- /**
- * Temporarily changes the values for a set of options. The {@linkplain OptionValue#getValue()
- * value} of each {@code option} in {@code overrides} is set to the corresponding {@code value}
- * in {@code overrides} until {@link OverrideScope#close()} is called on the object returned by
- * this method.
- *
- * Since the returned object is {@link AutoCloseable} the try-with-resource construct can be
- * used:
- *
- *
- * try (OverrideScope s = OptionValue.override(myOption1, myValue1, myOption2, myValue2) {
- * // code that depends on myOption == myValue
- * }
- *
- *
- * @param overrides overrides in the form {@code [option1, override1, option2, override2, ...]}
- */
- public static OverrideScope override(Object... overrides) {
- OverrideScope current = getOverrideScope();
- if (current == null && overrides.length == 2) {
- OptionValue> option = (OptionValue>) overrides[0];
- Object overrideValue = overrides[1];
- if (!overrideValue.equals(option.getValue())) {
- return new SingleOverrideScope(option, overrideValue);
- }
- }
- Map, Object> map = Collections.emptyMap();
- for (int i = 0; i < overrides.length; i += 2) {
- OptionValue> option = (OptionValue>) overrides[i];
- Object overrideValue = overrides[i + 1];
- if (!overrideValue.equals(option.getValue())) {
- if (map.isEmpty()) {
- map = new HashMap<>();
- }
- map.put(option, overrideValue);
- }
- }
- return new MultipleOverridesScope(current, map);
- }
-
- private static final ThreadLocal overrideScopeTL = new ThreadLocal<>();
-
- protected static OverrideScope getOverrideScope() {
- return overrideScopeTL.get();
- }
-
- protected static void setOverrideScope(OverrideScope overrideScope) {
- overrideScopeTL.set(overrideScope);
- }
-
- private T defaultValue;
-
- /**
- * The raw option value.
- */
- protected T value;
-
- private OptionDescriptor descriptor;
-
- private long reads;
- private OptionValue> next;
- private static OptionValue> head;
-
- private static final boolean ShowReadsHistogram = Boolean.getBoolean("jvmci.showOptionValueReadsHistogram");
-
- private static void addToHistogram(OptionValue> option) {
- if (ShowReadsHistogram) {
- synchronized (OptionValue.class) {
- option.next = head;
- head = option;
- }
- }
- }
-
- @SuppressWarnings("unchecked")
- public OptionValue(T value) {
- this.defaultValue = value;
- this.value = (T) DEFAULT;
- addToHistogram(this);
- }
-
- private static final Object DEFAULT = "DEFAULT";
- private static final Object UNINITIALIZED = "UNINITIALIZED";
-
- /**
- * Creates an uninitialized option value for a subclass that initializes itself
- * {@link #defaultValue() lazily}.
- */
- @SuppressWarnings("unchecked")
- protected OptionValue() {
- this.defaultValue = (T) UNINITIALIZED;
- this.value = (T) DEFAULT;
- addToHistogram(this);
- }
-
- /**
- * Lazy initialization of default value.
- */
- protected T defaultValue() {
- throw new InternalError("Option without a default value value must override defaultValue()");
- }
-
- /**
- * Sets the descriptor for this option.
- */
- public void setDescriptor(OptionDescriptor descriptor) {
- assert this.descriptor == null : "Overwriting existing descriptor";
- this.descriptor = descriptor;
- }
-
- /**
- * Returns the descriptor for this option, if it has been set by
- * {@link #setDescriptor(OptionDescriptor)}.
- */
- public OptionDescriptor getDescriptor() {
- return descriptor;
- }
-
- /**
- * Gets the name of this option. The name for an option value with a null
- * {@linkplain #setDescriptor(OptionDescriptor) descriptor} is the value of
- * {@link Object#toString()}.
- */
- public String getName() {
- return descriptor == null ? super.toString() : (descriptor.getDeclaringClass().getName() + "." + descriptor.getName());
- }
-
- @Override
- public String toString() {
- return getName() + "=" + getValue();
- }
-
- /**
- * The initial value specified in source code. The returned value is not affected by calls to
- * {@link #setValue(Object)} or registering {@link OverrideScope}s. Therefore, it is also not
- * affected by options set on the command line.
- */
- public T getDefaultValue() {
- if (defaultValue == UNINITIALIZED) {
- defaultValue = defaultValue();
- }
- return defaultValue;
- }
-
- /**
- * Returns true if the option has the same value that was set in the source code.
- */
- public boolean hasDefaultValue() {
- if (!(this instanceof StableOptionValue)) {
- getValue(); // ensure initialized
- }
- return value == DEFAULT || Objects.equals(value, getDefaultValue());
- }
-
- /**
- * Gets the value of this option.
- */
- public T getValue() {
- if (ShowReadsHistogram) {
- reads++;
- }
- if (!(this instanceof StableOptionValue)) {
- OverrideScope overrideScope = getOverrideScope();
- if (overrideScope != null) {
- T override = overrideScope.getOverride(this);
- if (override != null) {
- return override;
- }
- }
- }
- if (value != DEFAULT) {
- return value;
- } else {
- return getDefaultValue();
- }
- }
-
- /**
- * Gets the values of this option including overridden values.
- *
- * @param c the collection to which the values are added. If null, one is allocated.
- * @return the collection to which the values were added in order from most overridden to
- * current value
- */
- @SuppressWarnings("unchecked")
- public Collection getValues(Collection c) {
- Collection values = c == null ? new ArrayList<>() : c;
- if (!(this instanceof StableOptionValue)) {
- OverrideScope overrideScope = getOverrideScope();
- if (overrideScope != null) {
- overrideScope.getOverrides(this, (Collection