Merge
This commit is contained in:
commit
bcd742e1e6
@ -3,8 +3,7 @@
|
|||||||
^.idea/
|
^.idea/
|
||||||
nbproject/private/
|
nbproject/private/
|
||||||
^webrev
|
^webrev
|
||||||
^.hgtip
|
^.src-rev$
|
||||||
^.bridge2
|
|
||||||
^.jib/
|
^.jib/
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.metadata/
|
.metadata/
|
||||||
|
@ -389,3 +389,4 @@ f64afae7f1a5608e438585bbf0bc23785e69cba0 jdk-9+141
|
|||||||
8d337fd6333e28c48aa87880144b840aad82baaf jdk-9+144
|
8d337fd6333e28c48aa87880144b840aad82baaf jdk-9+144
|
||||||
ff98aa9ec9fae991e426ce5926fc9036d25f5562 jdk-9+145
|
ff98aa9ec9fae991e426ce5926fc9036d25f5562 jdk-9+145
|
||||||
a22e2671d88f6b22a4aa82e3966986542ed2a381 jdk-9+146
|
a22e2671d88f6b22a4aa82e3966986542ed2a381 jdk-9+146
|
||||||
|
5f6920274c48eb00d31afee6c034826a754c13d9 jdk-9+147
|
||||||
|
@ -98,7 +98,7 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
|
|||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
# Test: Is bootjdk explicitely set by command line arguments?
|
# Test: Is bootjdk explicitly set by command line arguments?
|
||||||
AC_DEFUN([BOOTJDK_CHECK_ARGUMENTS],
|
AC_DEFUN([BOOTJDK_CHECK_ARGUMENTS],
|
||||||
[
|
[
|
||||||
if test "x$with_boot_jdk" != x; then
|
if test "x$with_boot_jdk" != x; then
|
||||||
@ -238,7 +238,7 @@ AC_DEFUN([BOOTJDK_CHECK_TOOL_IN_BOOTJDK],
|
|||||||
$1=$BOOT_JDK/bin/$2
|
$1=$BOOT_JDK/bin/$2
|
||||||
if test ! -x [$]$1; then
|
if test ! -x [$]$1; then
|
||||||
AC_MSG_RESULT(not found)
|
AC_MSG_RESULT(not found)
|
||||||
AC_MSG_NOTICE([Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk])
|
AC_MSG_NOTICE([Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk])
|
||||||
AC_MSG_ERROR([Could not find $2 in the Boot JDK])
|
AC_MSG_ERROR([Could not find $2 in the Boot JDK])
|
||||||
fi
|
fi
|
||||||
AC_MSG_RESULT(ok)
|
AC_MSG_RESULT(ok)
|
||||||
@ -262,7 +262,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
|
|||||||
# we detected something (if so, the path to the jdk is in BOOT_JDK). But we
|
# we detected something (if so, the path to the jdk is in BOOT_JDK). But we
|
||||||
# must check if this is indeed valid; otherwise we'll continue looking.
|
# must check if this is indeed valid; otherwise we'll continue looking.
|
||||||
|
|
||||||
# Test: Is bootjdk explicitely set by command line arguments?
|
# Test: Is bootjdk explicitly set by command line arguments?
|
||||||
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_ARGUMENTS])
|
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_ARGUMENTS])
|
||||||
if test "x$with_boot_jdk" != x && test "x$BOOT_JDK_FOUND" = xno; then
|
if test "x$with_boot_jdk" != x && test "x$BOOT_JDK_FOUND" = xno; then
|
||||||
# Having specified an argument which is incorrect will produce an instant failure;
|
# Having specified an argument which is incorrect will produce an instant failure;
|
||||||
@ -286,7 +286,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
|
|||||||
if test "x$BOOT_JDK_FOUND" = xno; then
|
if test "x$BOOT_JDK_FOUND" = xno; then
|
||||||
HELP_MSG_MISSING_DEPENDENCY([openjdk])
|
HELP_MSG_MISSING_DEPENDENCY([openjdk])
|
||||||
AC_MSG_NOTICE([Could not find a valid Boot JDK. $HELP_MSG])
|
AC_MSG_NOTICE([Could not find a valid Boot JDK. $HELP_MSG])
|
||||||
AC_MSG_NOTICE([This might be fixed by explicitely setting --with-boot-jdk])
|
AC_MSG_NOTICE([This might be fixed by explicitly setting --with-boot-jdk])
|
||||||
AC_MSG_ERROR([Cannot continue])
|
AC_MSG_ERROR([Cannot continue])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -217,6 +217,13 @@ AC_DEFUN([BPERF_SETUP_CCACHE],
|
|||||||
AC_DEFUN([BPERF_SETUP_CCACHE_USAGE],
|
AC_DEFUN([BPERF_SETUP_CCACHE_USAGE],
|
||||||
[
|
[
|
||||||
if test "x$CCACHE" != x; then
|
if test "x$CCACHE" != x; then
|
||||||
|
if test "x$OPENJDK_BUILD_OS" = "xmacosx"; then
|
||||||
|
HAS_BAD_CCACHE=[`$ECHO $CCACHE_VERSION | \
|
||||||
|
$GREP -e '^1\.' -e '^2\.' -e '^3\.0\.' -e '^3\.1\.'`]
|
||||||
|
if test "x$HAS_BAD_CCACHE" != "x"; then
|
||||||
|
AC_MSG_ERROR([On macosx, ccache 3.2 or later is required, found $CCACHE_VERSION])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
if test "x$USE_PRECOMPILED_HEADER" = "x1"; then
|
if test "x$USE_PRECOMPILED_HEADER" = "x1"; then
|
||||||
HAS_BAD_CCACHE=[`$ECHO $CCACHE_VERSION | \
|
HAS_BAD_CCACHE=[`$ECHO $CCACHE_VERSION | \
|
||||||
$GREP -e '^1.*' -e '^2.*' -e '^3\.0.*' -e '^3\.1\.[0123]$'`]
|
$GREP -e '^1.*' -e '^2.*' -e '^3\.0.*' -e '^3\.1\.[0123]$'`]
|
||||||
|
@ -86,73 +86,13 @@ DISABLE_WARNING_PREFIX := @BUILD_CC_DISABLE_WARNING_PREFIX@
|
|||||||
# Save speed and disk space by not enabling debug symbols for the buildjdk
|
# Save speed and disk space by not enabling debug symbols for the buildjdk
|
||||||
ENABLE_DEBUG_SYMBOLS := false
|
ENABLE_DEBUG_SYMBOLS := false
|
||||||
|
|
||||||
####################################################
|
# Control wether Hotspot builds gtest tests
|
||||||
#
|
BUILD_GTEST := false
|
||||||
# Legacy Hotspot support
|
|
||||||
|
|
||||||
# Legacy setting: OPT or DBG
|
JVM_VARIANTS := server
|
||||||
VARIANT := OPT
|
|
||||||
# Legacy setting: true or false
|
|
||||||
FASTDEBUG := false
|
|
||||||
# Legacy setting: debugging the class files?
|
|
||||||
DEBUG_CLASSFILES := false
|
|
||||||
|
|
||||||
# Some users still set EXTRA_*FLAGS on the make command line. Must
|
# Some users still set EXTRA_*FLAGS on the make command line. Must
|
||||||
# make sure to override that when building buildjdk.
|
# make sure to override that when building buildjdk.
|
||||||
override EXTRA_CFLAGS :=
|
override EXTRA_CFLAGS :=
|
||||||
override EXTRA_CXXFLAGS :=
|
override EXTRA_CXXFLAGS :=
|
||||||
override EXTRA_LDFLAGS :=
|
override EXTRA_LDFLAGS :=
|
||||||
|
|
||||||
# The HOSTCC/HOSTCXX is Hotspot terminology for the BUILD_CC/BUILD_CXX, i.e. the
|
|
||||||
# compiler that produces code that can be run on the build platform.
|
|
||||||
HOSTCC := $(BUILD_CC)
|
|
||||||
HOSTCXX := $(BUILD_CXX)
|
|
||||||
|
|
||||||
# Old name for OPENJDK_TARGET_OS (aix,bsd,hpux,linux,macosx,solaris,windows etc)
|
|
||||||
PLATFORM := $(OPENJDK_BUILD_OS)
|
|
||||||
# 32 or 64 bit
|
|
||||||
ARCH_DATA_MODEL := $(OPENJDK_BUILD_CPU_BITS)
|
|
||||||
|
|
||||||
ALT_BOOTDIR := $(BOOT_JDK)
|
|
||||||
# Yet another name for arch used for an extra subdir below the jvm lib.
|
|
||||||
# Uses i386 and amd64, instead of x86 and x86_64.
|
|
||||||
LIBARCH := @OPENJDK_BUILD_CPU_LEGACY_LIB@
|
|
||||||
# Set the cpu architecture. Some users still set ARCH on the make command line. Must
|
|
||||||
# make sure to override that when building buildjdk.
|
|
||||||
override ARCH := $(OPENJDK_BUILD_CPU_ARCH)
|
|
||||||
# Legacy setting for building for a 64 bit machine.
|
|
||||||
# If yes then this expands to _LP64 := 1
|
|
||||||
ifeq ($(OPENJDK_BUILD_CPU_BITS), 64)
|
|
||||||
_LP64 := 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
ALT_OUTPUTDIR := $(HOTSPOT_OUTPUTDIR)
|
|
||||||
ALT_EXPORT_PATH := $(HOTSPOT_DIST)
|
|
||||||
|
|
||||||
JVM_INTERPRETER := @JVM_INTERPRETER@
|
|
||||||
ifeq ($(JVM_INTERPRETER), cpp)
|
|
||||||
CC_INTERP=true
|
|
||||||
endif
|
|
||||||
|
|
||||||
HOTSPOT_MAKE_ARGS := product docs export_product
|
|
||||||
|
|
||||||
# Control wether Hotspot builds gtest tests
|
|
||||||
BUILD_GTEST := false
|
|
||||||
|
|
||||||
USE_PRECOMPILED_HEADER := @USE_PRECOMPILED_HEADER@
|
|
||||||
|
|
||||||
# Hotspot expects the variable FULL_DEBUG_SYMBOLS=1/0 to control debug symbols
|
|
||||||
# creation.
|
|
||||||
FULL_DEBUG_SYMBOLS := 0
|
|
||||||
ZIP_DEBUGINFO_FILES := 0
|
|
||||||
# Disable stripping
|
|
||||||
STRIP_POLICY := none
|
|
||||||
|
|
||||||
JVM_VARIANTS := server
|
|
||||||
JVM_VARIANT_SERVER := true
|
|
||||||
JVM_VARIANT_CLIENT := false
|
|
||||||
JVM_VARIANT_MINIMAL1 := false
|
|
||||||
JVM_VARIANT_KERNEL := false
|
|
||||||
JVM_VARIANT_ZERO := false
|
|
||||||
JVM_VARIANT_ZEROSHARK := false
|
|
||||||
JVM_VARIANT_CORE := false
|
|
||||||
|
@ -182,7 +182,6 @@ TOOLCHAIN_POST_DETECTION
|
|||||||
|
|
||||||
# Finally do some processing after the detection phase
|
# Finally do some processing after the detection phase
|
||||||
TOOLCHAIN_SETUP_BUILD_COMPILERS
|
TOOLCHAIN_SETUP_BUILD_COMPILERS
|
||||||
TOOLCHAIN_SETUP_LEGACY
|
|
||||||
TOOLCHAIN_MISC_CHECKS
|
TOOLCHAIN_MISC_CHECKS
|
||||||
|
|
||||||
# Setup the JTReg Regression Test Harness.
|
# Setup the JTReg Regression Test Harness.
|
||||||
|
@ -1378,7 +1378,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_MISC],
|
|||||||
|
|
||||||
AC_MSG_CHECKING([if native warnings are errors])
|
AC_MSG_CHECKING([if native warnings are errors])
|
||||||
if test "x$enable_warnings_as_errors" = "xyes"; then
|
if test "x$enable_warnings_as_errors" = "xyes"; then
|
||||||
AC_MSG_RESULT([yes (explicitely set)])
|
AC_MSG_RESULT([yes (explicitly set)])
|
||||||
WARNINGS_AS_ERRORS=true
|
WARNINGS_AS_ERRORS=true
|
||||||
elif test "x$enable_warnings_as_errors" = "xno"; then
|
elif test "x$enable_warnings_as_errors" = "xno"; then
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
|
@ -700,8 +700,6 @@ JVM_FEATURES_client
|
|||||||
JVM_FEATURES_server
|
JVM_FEATURES_server
|
||||||
INCLUDE_DTRACE
|
INCLUDE_DTRACE
|
||||||
GCOV_ENABLED
|
GCOV_ENABLED
|
||||||
STRIP_POLICY
|
|
||||||
DEBUG_BINARIES
|
|
||||||
ZIP_EXTERNAL_DEBUG_SYMBOLS
|
ZIP_EXTERNAL_DEBUG_SYMBOLS
|
||||||
COPY_DEBUG_SYMBOLS
|
COPY_DEBUG_SYMBOLS
|
||||||
COMPILE_WITH_DEBUG_SYMBOLS
|
COMPILE_WITH_DEBUG_SYMBOLS
|
||||||
@ -791,11 +789,6 @@ JTREGEXE
|
|||||||
HOTSPOT_TOOLCHAIN_TYPE
|
HOTSPOT_TOOLCHAIN_TYPE
|
||||||
USING_BROKEN_SUSE_LD
|
USING_BROKEN_SUSE_LD
|
||||||
PACKAGE_PATH
|
PACKAGE_PATH
|
||||||
USE_CLANG
|
|
||||||
HOTSPOT_LD
|
|
||||||
HOTSPOT_CXX
|
|
||||||
HOTSPOT_RC
|
|
||||||
HOTSPOT_MT
|
|
||||||
BUILD_AS
|
BUILD_AS
|
||||||
BUILD_LDCXX
|
BUILD_LDCXX
|
||||||
BUILD_LD
|
BUILD_LD
|
||||||
@ -1974,8 +1967,8 @@ Optional Features:
|
|||||||
--enable-debug set the debug level to fastdebug (shorthand for
|
--enable-debug set the debug level to fastdebug (shorthand for
|
||||||
--with-debug-level=fastdebug) [disabled]
|
--with-debug-level=fastdebug) [disabled]
|
||||||
--enable-headless-only only build headless (no GUI) support [disabled]
|
--enable-headless-only only build headless (no GUI) support [disabled]
|
||||||
--enable-unlimited-crypto
|
--disable-unlimited-crypto
|
||||||
Enable unlimited crypto policy [disabled]
|
Disable unlimited crypto policy [enabled]
|
||||||
--disable-keep-packaged-modules
|
--disable-keep-packaged-modules
|
||||||
Do not keep packaged modules in jdk image [enable]
|
Do not keep packaged modules in jdk image [enable]
|
||||||
--enable-static-build enable static library build [disabled]
|
--enable-static-build enable static library build [disabled]
|
||||||
@ -3851,7 +3844,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
|
|||||||
# $1 A command line (typically autoconf macro) to execute
|
# $1 A command line (typically autoconf macro) to execute
|
||||||
|
|
||||||
|
|
||||||
# Test: Is bootjdk explicitely set by command line arguments?
|
# Test: Is bootjdk explicitly set by command line arguments?
|
||||||
|
|
||||||
|
|
||||||
# Test: Is $JAVA_HOME set?
|
# Test: Is $JAVA_HOME set?
|
||||||
@ -4911,7 +4904,7 @@ TOOLCHAIN_DESCRIPTION_xlc="IBM XL C/C++"
|
|||||||
# Minimum supported versions, empty means unspecified
|
# Minimum supported versions, empty means unspecified
|
||||||
TOOLCHAIN_MINIMUM_VERSION_clang="3.2"
|
TOOLCHAIN_MINIMUM_VERSION_clang="3.2"
|
||||||
TOOLCHAIN_MINIMUM_VERSION_gcc="4.3"
|
TOOLCHAIN_MINIMUM_VERSION_gcc="4.3"
|
||||||
TOOLCHAIN_MINIMUM_VERSION_microsoft=""
|
TOOLCHAIN_MINIMUM_VERSION_microsoft="16.00.30319.01" # VS2010
|
||||||
TOOLCHAIN_MINIMUM_VERSION_solstudio="5.13"
|
TOOLCHAIN_MINIMUM_VERSION_solstudio="5.13"
|
||||||
TOOLCHAIN_MINIMUM_VERSION_xlc=""
|
TOOLCHAIN_MINIMUM_VERSION_xlc=""
|
||||||
|
|
||||||
@ -4982,10 +4975,6 @@ TOOLCHAIN_MINIMUM_VERSION_xlc=""
|
|||||||
# for this, we can only do this after these have been setup.
|
# for this, we can only do this after these have been setup.
|
||||||
|
|
||||||
|
|
||||||
# Setup legacy variables that are still needed as alternative ways to refer to
|
|
||||||
# parts of the toolchain.
|
|
||||||
|
|
||||||
|
|
||||||
# Do some additional checks on the detected tools.
|
# Do some additional checks on the detected tools.
|
||||||
|
|
||||||
|
|
||||||
@ -5093,7 +5082,7 @@ VS_SDK_PLATFORM_NAME_2013=
|
|||||||
#CUSTOM_AUTOCONF_INCLUDE
|
#CUSTOM_AUTOCONF_INCLUDE
|
||||||
|
|
||||||
# Do not change or remove the following line, it is needed for consistency checks:
|
# Do not change or remove the following line, it is needed for consistency checks:
|
||||||
DATE_WHEN_GENERATED=1479997904
|
DATE_WHEN_GENERATED=1480714260
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
@ -15523,7 +15512,7 @@ test -n "$target_alias" &&
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# ..and setup our own variables. (Do this explicitely to facilitate searching)
|
# ..and setup our own variables. (Do this explicitly to facilitate searching)
|
||||||
OPENJDK_BUILD_OS="$VAR_OS"
|
OPENJDK_BUILD_OS="$VAR_OS"
|
||||||
if test "x$VAR_OS_TYPE" != x; then
|
if test "x$VAR_OS_TYPE" != x; then
|
||||||
OPENJDK_BUILD_OS_TYPE="$VAR_OS_TYPE"
|
OPENJDK_BUILD_OS_TYPE="$VAR_OS_TYPE"
|
||||||
@ -15662,7 +15651,7 @@ $as_echo "$OPENJDK_BUILD_OS-$OPENJDK_BUILD_CPU" >&6; }
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# ... and setup our own variables. (Do this explicitely to facilitate searching)
|
# ... and setup our own variables. (Do this explicitly to facilitate searching)
|
||||||
OPENJDK_TARGET_OS="$VAR_OS"
|
OPENJDK_TARGET_OS="$VAR_OS"
|
||||||
if test "x$VAR_OS_TYPE" != x; then
|
if test "x$VAR_OS_TYPE" != x; then
|
||||||
OPENJDK_TARGET_OS_TYPE="$VAR_OS_TYPE"
|
OPENJDK_TARGET_OS_TYPE="$VAR_OS_TYPE"
|
||||||
@ -24240,7 +24229,7 @@ fi
|
|||||||
if test "${enable_unlimited_crypto+set}" = set; then :
|
if test "${enable_unlimited_crypto+set}" = set; then :
|
||||||
enableval=$enable_unlimited_crypto;
|
enableval=$enable_unlimited_crypto;
|
||||||
else
|
else
|
||||||
enable_unlimited_crypto=no
|
enable_unlimited_crypto=yes
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$enable_unlimited_crypto" = "xyes"; then
|
if test "x$enable_unlimited_crypto" = "xyes"; then
|
||||||
@ -24400,7 +24389,7 @@ fi
|
|||||||
as_fn_error $? "Version string contains + but both 'BUILD' and 'OPT' are missing" "$LINENO" 5
|
as_fn_error $? "Version string contains + but both 'BUILD' and 'OPT' are missing" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
# Stop the version part process from setting default values.
|
# Stop the version part process from setting default values.
|
||||||
# We still allow them to explicitely override though.
|
# We still allow them to explicitly override though.
|
||||||
NO_DEFAULT_VERSION_PARTS=true
|
NO_DEFAULT_VERSION_PARTS=true
|
||||||
else
|
else
|
||||||
as_fn_error $? "--with-version-string fails to parse as a valid version string: $with_version_string" "$LINENO" 5
|
as_fn_error $? "--with-version-string fails to parse as a valid version string: $with_version_string" "$LINENO" 5
|
||||||
@ -24769,7 +24758,7 @@ fi
|
|||||||
# we detected something (if so, the path to the jdk is in BOOT_JDK). But we
|
# we detected something (if so, the path to the jdk is in BOOT_JDK). But we
|
||||||
# must check if this is indeed valid; otherwise we'll continue looking.
|
# must check if this is indeed valid; otherwise we'll continue looking.
|
||||||
|
|
||||||
# Test: Is bootjdk explicitely set by command line arguments?
|
# Test: Is bootjdk explicitly set by command line arguments?
|
||||||
|
|
||||||
if test "x$BOOT_JDK_FOUND" = xno; then
|
if test "x$BOOT_JDK_FOUND" = xno; then
|
||||||
# Now execute the test
|
# Now execute the test
|
||||||
@ -29887,8 +29876,8 @@ $as_echo "$BOOT_JDK_VERSION" >&6; }
|
|||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Could not find a valid Boot JDK. $HELP_MSG" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: Could not find a valid Boot JDK. $HELP_MSG" >&5
|
||||||
$as_echo "$as_me: Could not find a valid Boot JDK. $HELP_MSG" >&6;}
|
$as_echo "$as_me: Could not find a valid Boot JDK. $HELP_MSG" >&6;}
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: This might be fixed by explicitely setting --with-boot-jdk" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: This might be fixed by explicitly setting --with-boot-jdk" >&5
|
||||||
$as_echo "$as_me: This might be fixed by explicitely setting --with-boot-jdk" >&6;}
|
$as_echo "$as_me: This might be fixed by explicitly setting --with-boot-jdk" >&6;}
|
||||||
as_fn_error $? "Cannot continue" "$LINENO" 5
|
as_fn_error $? "Cannot continue" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -29910,8 +29899,8 @@ $as_echo_n "checking for java in Boot JDK... " >&6; }
|
|||||||
if test ! -x $JAVA; then
|
if test ! -x $JAVA; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||||||
$as_echo "not found" >&6; }
|
$as_echo "not found" >&6; }
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5
|
||||||
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
|
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;}
|
||||||
as_fn_error $? "Could not find java in the Boot JDK" "$LINENO" 5
|
as_fn_error $? "Could not find java in the Boot JDK" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
||||||
@ -29938,8 +29927,8 @@ $as_echo_n "checking for java in Boot JDK... " >&6; }
|
|||||||
if test ! -x $JAVA; then
|
if test ! -x $JAVA; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||||||
$as_echo "not found" >&6; }
|
$as_echo "not found" >&6; }
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5
|
||||||
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
|
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;}
|
||||||
as_fn_error $? "Could not find java in the Boot JDK" "$LINENO" 5
|
as_fn_error $? "Could not find java in the Boot JDK" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
||||||
@ -30048,8 +30037,8 @@ $as_echo_n "checking for javac in Boot JDK... " >&6; }
|
|||||||
if test ! -x $JAVAC; then
|
if test ! -x $JAVAC; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||||||
$as_echo "not found" >&6; }
|
$as_echo "not found" >&6; }
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5
|
||||||
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
|
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;}
|
||||||
as_fn_error $? "Could not find javac in the Boot JDK" "$LINENO" 5
|
as_fn_error $? "Could not find javac in the Boot JDK" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
||||||
@ -30076,8 +30065,8 @@ $as_echo_n "checking for javac in Boot JDK... " >&6; }
|
|||||||
if test ! -x $JAVAC; then
|
if test ! -x $JAVAC; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||||||
$as_echo "not found" >&6; }
|
$as_echo "not found" >&6; }
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5
|
||||||
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
|
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;}
|
||||||
as_fn_error $? "Could not find javac in the Boot JDK" "$LINENO" 5
|
as_fn_error $? "Could not find javac in the Boot JDK" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
||||||
@ -30186,8 +30175,8 @@ $as_echo_n "checking for javah in Boot JDK... " >&6; }
|
|||||||
if test ! -x $JAVAH; then
|
if test ! -x $JAVAH; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||||||
$as_echo "not found" >&6; }
|
$as_echo "not found" >&6; }
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5
|
||||||
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
|
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;}
|
||||||
as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5
|
as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
||||||
@ -30214,8 +30203,8 @@ $as_echo_n "checking for javah in Boot JDK... " >&6; }
|
|||||||
if test ! -x $JAVAH; then
|
if test ! -x $JAVAH; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||||||
$as_echo "not found" >&6; }
|
$as_echo "not found" >&6; }
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5
|
||||||
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
|
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;}
|
||||||
as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5
|
as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
||||||
@ -30324,8 +30313,8 @@ $as_echo_n "checking for jar in Boot JDK... " >&6; }
|
|||||||
if test ! -x $JAR; then
|
if test ! -x $JAR; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||||||
$as_echo "not found" >&6; }
|
$as_echo "not found" >&6; }
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5
|
||||||
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
|
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;}
|
||||||
as_fn_error $? "Could not find jar in the Boot JDK" "$LINENO" 5
|
as_fn_error $? "Could not find jar in the Boot JDK" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
||||||
@ -30352,8 +30341,8 @@ $as_echo_n "checking for jar in Boot JDK... " >&6; }
|
|||||||
if test ! -x $JAR; then
|
if test ! -x $JAR; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||||||
$as_echo "not found" >&6; }
|
$as_echo "not found" >&6; }
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5
|
||||||
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
|
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;}
|
||||||
as_fn_error $? "Could not find jar in the Boot JDK" "$LINENO" 5
|
as_fn_error $? "Could not find jar in the Boot JDK" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
||||||
@ -30462,8 +30451,8 @@ $as_echo_n "checking for jarsigner in Boot JDK... " >&6; }
|
|||||||
if test ! -x $JARSIGNER; then
|
if test ! -x $JARSIGNER; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||||||
$as_echo "not found" >&6; }
|
$as_echo "not found" >&6; }
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5
|
||||||
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
|
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;}
|
||||||
as_fn_error $? "Could not find jarsigner in the Boot JDK" "$LINENO" 5
|
as_fn_error $? "Could not find jarsigner in the Boot JDK" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
||||||
@ -30490,8 +30479,8 @@ $as_echo_n "checking for jarsigner in Boot JDK... " >&6; }
|
|||||||
if test ! -x $JARSIGNER; then
|
if test ! -x $JARSIGNER; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||||||
$as_echo "not found" >&6; }
|
$as_echo "not found" >&6; }
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5
|
||||||
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
|
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;}
|
||||||
as_fn_error $? "Could not find jarsigner in the Boot JDK" "$LINENO" 5
|
as_fn_error $? "Could not find jarsigner in the Boot JDK" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
|
||||||
@ -31198,6 +31187,12 @@ $as_echo "$as_me: The path of IMPORT_MODULES_TOPDIR, which resolves as \"$path\"
|
|||||||
if test -d "$IMPORT_MODULES_TOPDIR/modules_src"; then
|
if test -d "$IMPORT_MODULES_TOPDIR/modules_src"; then
|
||||||
IMPORT_MODULES_SRC="$IMPORT_MODULES_TOPDIR/modules_src"
|
IMPORT_MODULES_SRC="$IMPORT_MODULES_TOPDIR/modules_src"
|
||||||
fi
|
fi
|
||||||
|
# Workaround for using different imported module-info.java in Jake due to a
|
||||||
|
# change in format. Remove once new format is standard in JDK 9 and javafx
|
||||||
|
# delivers just that.
|
||||||
|
if test -d "$IMPORT_MODULES_TOPDIR/modules_src_jake"; then
|
||||||
|
IMPORT_MODULES_SRC="$IMPORT_MODULES_TOPDIR/modules_src_jake $IMPORT_MODULES_SRC"
|
||||||
|
fi
|
||||||
if test -d "$IMPORT_MODULES_TOPDIR/make"; then
|
if test -d "$IMPORT_MODULES_TOPDIR/make"; then
|
||||||
IMPORT_MODULES_MAKE="$IMPORT_MODULES_TOPDIR/make"
|
IMPORT_MODULES_MAKE="$IMPORT_MODULES_TOPDIR/make"
|
||||||
fi
|
fi
|
||||||
@ -33578,9 +33573,11 @@ $as_echo "$as_me: Please use --enable-ccache instead of providing a wrapped comp
|
|||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
# cc -V output typically looks like
|
# cc -V output typically looks like
|
||||||
# cc: Sun C 5.12 Linux_i386 2011/11/16
|
# cc: Sun C 5.12 Linux_i386 2011/11/16
|
||||||
|
# or
|
||||||
|
# cc: Studio 12.5 Sun C 5.14 SunOS_sparc 2016/05/31
|
||||||
COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1`
|
COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1`
|
||||||
# Check that this is likely to be the Solaris Studio cc.
|
# Check that this is likely to be the Solaris Studio cc.
|
||||||
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.*: Sun $COMPILER_NAME" > /dev/null
|
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.* Sun $COMPILER_NAME" > /dev/null
|
||||||
if test $? -ne 0; then
|
if test $? -ne 0; then
|
||||||
ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler." >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler." >&5
|
||||||
@ -34875,9 +34872,11 @@ $as_echo "$as_me: Please use --enable-ccache instead of providing a wrapped comp
|
|||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
# cc -V output typically looks like
|
# cc -V output typically looks like
|
||||||
# cc: Sun C 5.12 Linux_i386 2011/11/16
|
# cc: Sun C 5.12 Linux_i386 2011/11/16
|
||||||
|
# or
|
||||||
|
# cc: Studio 12.5 Sun C 5.14 SunOS_sparc 2016/05/31
|
||||||
COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1`
|
COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1`
|
||||||
# Check that this is likely to be the Solaris Studio cc.
|
# Check that this is likely to be the Solaris Studio cc.
|
||||||
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.*: Sun $COMPILER_NAME" > /dev/null
|
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.* Sun $COMPILER_NAME" > /dev/null
|
||||||
if test $? -ne 0; then
|
if test $? -ne 0; then
|
||||||
ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler." >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler." >&5
|
||||||
@ -35261,9 +35260,9 @@ $as_echo "$as_me: WARNING: This typically indicates a broken setup, and is not s
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
|
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
|
||||||
if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){3} ]] ; then
|
if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){4} ]] ; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than four parts (W.X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&5
|
||||||
$as_echo "$as_me: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
|
$as_echo "$as_me: WARNING: C compiler version number has more than four parts (W.X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "[$]CC_VERSION_NUMBER" =~ [0-9]{6} ]] ; then
|
if [[ "[$]CC_VERSION_NUMBER" =~ [0-9]{6} ]] ; then
|
||||||
@ -35271,7 +35270,7 @@ $as_echo "$as_me: WARNING: C compiler version number has more than three parts (
|
|||||||
$as_echo "$as_me: WARNING: C compiler version number has a part larger than 99999: $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
|
$as_echo "$as_me: WARNING: C compiler version number has a part larger than 99999: $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$CC_VERSION_NUMBER"`
|
COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$CC_VERSION_NUMBER"`
|
||||||
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_MINIMUM_VERSION" != x; then
|
if test "x$TOOLCHAIN_MINIMUM_VERSION" != x; then
|
||||||
@ -35329,8 +35328,8 @@ $as_echo "$as_me: WARNING: C compiler version number has a part larger than 9999
|
|||||||
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
||||||
REFERENCE_VERSION=$TOOLCHAIN_MINIMUM_VERSION
|
REFERENCE_VERSION=$TOOLCHAIN_MINIMUM_VERSION
|
||||||
|
|
||||||
if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then
|
if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then
|
||||||
as_fn_error $? "Internal error: Cannot compare to $TOOLCHAIN_MINIMUM_VERSION, only three parts (X.Y.Z) is supported" "$LINENO" 5
|
as_fn_error $? "Internal error: Cannot compare to $TOOLCHAIN_MINIMUM_VERSION, only four parts (W.X.Y.Z) is supported" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
|
if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
|
||||||
@ -35338,7 +35337,7 @@ $as_echo "$as_me: WARNING: C compiler version number has a part larger than 9999
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
||||||
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$REFERENCE_VERSION"`
|
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$REFERENCE_VERSION"`
|
||||||
|
|
||||||
if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then
|
if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then
|
||||||
:
|
:
|
||||||
@ -46956,9 +46955,11 @@ $as_echo "$as_me: Rewriting BUILD_STRIP to \"$new_complete\"" >&6;}
|
|||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
# cc -V output typically looks like
|
# cc -V output typically looks like
|
||||||
# cc: Sun C 5.12 Linux_i386 2011/11/16
|
# cc: Sun C 5.12 Linux_i386 2011/11/16
|
||||||
|
# or
|
||||||
|
# cc: Studio 12.5 Sun C 5.14 SunOS_sparc 2016/05/31
|
||||||
COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1`
|
COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1`
|
||||||
# Check that this is likely to be the Solaris Studio cc.
|
# Check that this is likely to be the Solaris Studio cc.
|
||||||
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.*: Sun $COMPILER_NAME" > /dev/null
|
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.* Sun $COMPILER_NAME" > /dev/null
|
||||||
if test $? -ne 0; then
|
if test $? -ne 0; then
|
||||||
ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler." >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler." >&5
|
||||||
@ -47076,9 +47077,11 @@ $as_echo "$as_me: Using $TOOLCHAIN_TYPE $COMPILER_NAME compiler version $COMPILE
|
|||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
# cc -V output typically looks like
|
# cc -V output typically looks like
|
||||||
# cc: Sun C 5.12 Linux_i386 2011/11/16
|
# cc: Sun C 5.12 Linux_i386 2011/11/16
|
||||||
|
# or
|
||||||
|
# cc: Studio 12.5 Sun C 5.14 SunOS_sparc 2016/05/31
|
||||||
COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1`
|
COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1`
|
||||||
# Check that this is likely to be the Solaris Studio cc.
|
# Check that this is likely to be the Solaris Studio cc.
|
||||||
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.*: Sun $COMPILER_NAME" > /dev/null
|
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.* Sun $COMPILER_NAME" > /dev/null
|
||||||
if test $? -ne 0; then
|
if test $? -ne 0; then
|
||||||
ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler." >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler." >&5
|
||||||
@ -47198,9 +47201,9 @@ $as_echo "$as_me: WARNING: This typically indicates a broken setup, and is not s
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
|
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
|
||||||
if [[ "[$]BUILD_CC_VERSION_NUMBER" =~ (.*\.){3} ]] ; then
|
if [[ "[$]BUILD_CC_VERSION_NUMBER" =~ (.*\.){4} ]] ; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than three parts (X.Y.Z): $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than four parts (W.X.Y.Z): $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&5
|
||||||
$as_echo "$as_me: WARNING: C compiler version number has more than three parts (X.Y.Z): $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
|
$as_echo "$as_me: WARNING: C compiler version number has more than four parts (W.X.Y.Z): $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "[$]BUILD_CC_VERSION_NUMBER" =~ [0-9]{6} ]] ; then
|
if [[ "[$]BUILD_CC_VERSION_NUMBER" =~ [0-9]{6} ]] ; then
|
||||||
@ -47208,7 +47211,7 @@ $as_echo "$as_me: WARNING: C compiler version number has more than three parts (
|
|||||||
$as_echo "$as_me: WARNING: C compiler version number has a part larger than 99999: $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
|
$as_echo "$as_me: WARNING: C compiler version number has a part larger than 99999: $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$BUILD_CC_VERSION_NUMBER"`
|
OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$BUILD_CC_VERSION_NUMBER"`
|
||||||
|
|
||||||
else
|
else
|
||||||
# If we are not cross compiling, use the normal target compilers for
|
# If we are not cross compiling, use the normal target compilers for
|
||||||
@ -47234,9 +47237,9 @@ $as_echo "$as_me: WARNING: This typically indicates a broken setup, and is not s
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
|
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
|
||||||
if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){3} ]] ; then
|
if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){4} ]] ; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than four parts (W.X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&5
|
||||||
$as_echo "$as_me: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
|
$as_echo "$as_me: WARNING: C compiler version number has more than four parts (W.X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "[$]CC_VERSION_NUMBER" =~ [0-9]{6} ]] ; then
|
if [[ "[$]CC_VERSION_NUMBER" =~ [0-9]{6} ]] ; then
|
||||||
@ -47244,7 +47247,7 @@ $as_echo "$as_me: WARNING: C compiler version number has more than three parts (
|
|||||||
$as_echo "$as_me: WARNING: C compiler version number has a part larger than 99999: $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
|
$as_echo "$as_me: WARNING: C compiler version number has a part larger than 99999: $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$CC_VERSION_NUMBER"`
|
OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$CC_VERSION_NUMBER"`
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -47259,68 +47262,6 @@ $as_echo "$as_me: WARNING: C compiler version number has a part larger than 9999
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
|
||||||
# For hotspot, we need these in Windows mixed path,
|
|
||||||
# so rewrite them all. Need added .exe suffix.
|
|
||||||
HOTSPOT_CXX="$CXX.exe"
|
|
||||||
HOTSPOT_LD="$LD.exe"
|
|
||||||
HOTSPOT_MT="$MT.exe"
|
|
||||||
HOTSPOT_RC="$RC.exe"
|
|
||||||
|
|
||||||
unix_path="$HOTSPOT_CXX"
|
|
||||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
|
|
||||||
windows_path=`$CYGPATH -m "$unix_path"`
|
|
||||||
HOTSPOT_CXX="$windows_path"
|
|
||||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
|
||||||
windows_path=`cmd //c echo $unix_path`
|
|
||||||
HOTSPOT_CXX="$windows_path"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
unix_path="$HOTSPOT_LD"
|
|
||||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
|
|
||||||
windows_path=`$CYGPATH -m "$unix_path"`
|
|
||||||
HOTSPOT_LD="$windows_path"
|
|
||||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
|
||||||
windows_path=`cmd //c echo $unix_path`
|
|
||||||
HOTSPOT_LD="$windows_path"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
unix_path="$HOTSPOT_MT"
|
|
||||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
|
|
||||||
windows_path=`$CYGPATH -m "$unix_path"`
|
|
||||||
HOTSPOT_MT="$windows_path"
|
|
||||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
|
||||||
windows_path=`cmd //c echo $unix_path`
|
|
||||||
HOTSPOT_MT="$windows_path"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
unix_path="$HOTSPOT_RC"
|
|
||||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
|
|
||||||
windows_path=`$CYGPATH -m "$unix_path"`
|
|
||||||
HOTSPOT_RC="$windows_path"
|
|
||||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
|
||||||
windows_path=`cmd //c echo $unix_path`
|
|
||||||
HOTSPOT_RC="$windows_path"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
else
|
|
||||||
HOTSPOT_CXX="$CXX"
|
|
||||||
HOTSPOT_LD="$LD"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xclang; then
|
|
||||||
USE_CLANG=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# The package path is used only on macosx?
|
# The package path is used only on macosx?
|
||||||
@ -49914,8 +49855,8 @@ $as_echo "$supports" >&6; }
|
|||||||
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
||||||
REFERENCE_VERSION=6
|
REFERENCE_VERSION=6
|
||||||
|
|
||||||
if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then
|
if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then
|
||||||
as_fn_error $? "Internal error: Cannot compare to 6, only three parts (X.Y.Z) is supported" "$LINENO" 5
|
as_fn_error $? "Internal error: Cannot compare to 6, only four parts (W.X.Y.Z) is supported" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
|
if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
|
||||||
@ -49923,7 +49864,7 @@ $as_echo "$supports" >&6; }
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
||||||
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$REFERENCE_VERSION"`
|
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$REFERENCE_VERSION"`
|
||||||
|
|
||||||
if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then
|
if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then
|
||||||
:
|
:
|
||||||
@ -50214,8 +50155,8 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA
|
|||||||
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
||||||
REFERENCE_VERSION=4.8
|
REFERENCE_VERSION=4.8
|
||||||
|
|
||||||
if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then
|
if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then
|
||||||
as_fn_error $? "Internal error: Cannot compare to 4.8, only three parts (X.Y.Z) is supported" "$LINENO" 5
|
as_fn_error $? "Internal error: Cannot compare to 4.8, only four parts (W.X.Y.Z) is supported" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
|
if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
|
||||||
@ -50223,7 +50164,7 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
||||||
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$REFERENCE_VERSION"`
|
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$REFERENCE_VERSION"`
|
||||||
|
|
||||||
if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then
|
if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then
|
||||||
:
|
:
|
||||||
@ -50737,8 +50678,8 @@ $as_echo "$supports" >&6; }
|
|||||||
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
||||||
REFERENCE_VERSION=6
|
REFERENCE_VERSION=6
|
||||||
|
|
||||||
if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then
|
if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then
|
||||||
as_fn_error $? "Internal error: Cannot compare to 6, only three parts (X.Y.Z) is supported" "$LINENO" 5
|
as_fn_error $? "Internal error: Cannot compare to 6, only four parts (W.X.Y.Z) is supported" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
|
if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
|
||||||
@ -50746,7 +50687,7 @@ $as_echo "$supports" >&6; }
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
||||||
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$REFERENCE_VERSION"`
|
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$REFERENCE_VERSION"`
|
||||||
|
|
||||||
if test $OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then
|
if test $OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then
|
||||||
:
|
:
|
||||||
@ -51037,8 +50978,8 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA
|
|||||||
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
||||||
REFERENCE_VERSION=4.8
|
REFERENCE_VERSION=4.8
|
||||||
|
|
||||||
if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then
|
if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then
|
||||||
as_fn_error $? "Internal error: Cannot compare to 4.8, only three parts (X.Y.Z) is supported" "$LINENO" 5
|
as_fn_error $? "Internal error: Cannot compare to 4.8, only four parts (W.X.Y.Z) is supported" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
|
if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
|
||||||
@ -51046,7 +50987,7 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
||||||
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$REFERENCE_VERSION"`
|
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$REFERENCE_VERSION"`
|
||||||
|
|
||||||
if test $OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then
|
if test $OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then
|
||||||
:
|
:
|
||||||
@ -51917,8 +51858,8 @@ fi
|
|||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if native warnings are errors" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if native warnings are errors" >&5
|
||||||
$as_echo_n "checking if native warnings are errors... " >&6; }
|
$as_echo_n "checking if native warnings are errors... " >&6; }
|
||||||
if test "x$enable_warnings_as_errors" = "xyes"; then
|
if test "x$enable_warnings_as_errors" = "xyes"; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (explicitely set)" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (explicitly set)" >&5
|
||||||
$as_echo "yes (explicitely set)" >&6; }
|
$as_echo "yes (explicitly set)" >&6; }
|
||||||
WARNINGS_AS_ERRORS=true
|
WARNINGS_AS_ERRORS=true
|
||||||
elif test "x$enable_warnings_as_errors" = "xno"; then
|
elif test "x$enable_warnings_as_errors" = "xno"; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
@ -52583,28 +52524,14 @@ $as_echo "$NATIVE_DEBUG_SYMBOLS" >&6; }
|
|||||||
COMPILE_WITH_DEBUG_SYMBOLS=true
|
COMPILE_WITH_DEBUG_SYMBOLS=true
|
||||||
COPY_DEBUG_SYMBOLS=true
|
COPY_DEBUG_SYMBOLS=true
|
||||||
ZIP_EXTERNAL_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
|
elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then
|
||||||
COMPILE_WITH_DEBUG_SYMBOLS=false
|
COMPILE_WITH_DEBUG_SYMBOLS=false
|
||||||
COPY_DEBUG_SYMBOLS=false
|
COPY_DEBUG_SYMBOLS=false
|
||||||
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
|
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
|
||||||
|
|
||||||
DEBUG_BINARIES=false
|
|
||||||
STRIP_POLICY=no_strip
|
|
||||||
elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then
|
elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then
|
||||||
COMPILE_WITH_DEBUG_SYMBOLS=true
|
COMPILE_WITH_DEBUG_SYMBOLS=true
|
||||||
COPY_DEBUG_SYMBOLS=false
|
COPY_DEBUG_SYMBOLS=false
|
||||||
ZIP_EXTERNAL_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
|
elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
|
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||||||
@ -52618,10 +52545,6 @@ $as_echo "$NATIVE_DEBUG_SYMBOLS" >&6; }
|
|||||||
COMPILE_WITH_DEBUG_SYMBOLS=true
|
COMPILE_WITH_DEBUG_SYMBOLS=true
|
||||||
COPY_DEBUG_SYMBOLS=true
|
COPY_DEBUG_SYMBOLS=true
|
||||||
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
|
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
|
||||||
|
|
||||||
# Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true
|
|
||||||
DEBUG_BINARIES=false
|
|
||||||
STRIP_POLICY=min_strip
|
|
||||||
else
|
else
|
||||||
as_fn_error $? "Allowed native debug symbols are: none, internal, external, zipped" "$LINENO" 5
|
as_fn_error $? "Allowed native debug symbols are: none, internal, external, zipped" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
@ -52670,10 +52593,6 @@ $as_echo "$as_me: WARNING: Please use --with-native-debug-symbols=zipped ." >&2;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Legacy values
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Check whether --enable-native-coverage was given.
|
# Check whether --enable-native-coverage was given.
|
||||||
if test "${enable_native_coverage+set}" = set; then :
|
if test "${enable_native_coverage+set}" = set; then :
|
||||||
@ -53195,7 +53114,7 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
if test "x$with_msvcr_dll" != x; then
|
if test "x$with_msvcr_dll" != x; then
|
||||||
# If given explicitely by user, do not probe. If not present, fail directly.
|
# If given explicitly by user, do not probe. If not present, fail directly.
|
||||||
|
|
||||||
DLL_NAME="$MSVCR_NAME"
|
DLL_NAME="$MSVCR_NAME"
|
||||||
POSSIBLE_MSVC_DLL="$with_msvcr_dll"
|
POSSIBLE_MSVC_DLL="$with_msvcr_dll"
|
||||||
@ -54544,7 +54463,7 @@ fi
|
|||||||
|
|
||||||
if test "x$MSVCP_NAME" != "x"; then
|
if test "x$MSVCP_NAME" != "x"; then
|
||||||
if test "x$with_msvcp_dll" != x; then
|
if test "x$with_msvcp_dll" != x; then
|
||||||
# If given explicitely by user, do not probe. If not present, fail directly.
|
# If given explicitly by user, do not probe. If not present, fail directly.
|
||||||
|
|
||||||
DLL_NAME="$MSVCP_NAME"
|
DLL_NAME="$MSVCP_NAME"
|
||||||
POSSIBLE_MSVC_DLL="$with_msvcp_dll"
|
POSSIBLE_MSVC_DLL="$with_msvcp_dll"
|
||||||
@ -55903,7 +55822,7 @@ $as_echo "$as_me: WARNING: X11 is not used, so --with-x is ignored" >&2;}
|
|||||||
|
|
||||||
if test "x${with_x}" != x && test "x${with_x}" != xyes; then
|
if test "x${with_x}" != x && test "x${with_x}" != xyes; then
|
||||||
# The user has specified a X11 base directory. Use it for includes and
|
# The user has specified a X11 base directory. Use it for includes and
|
||||||
# libraries, unless explicitely overridden.
|
# libraries, unless explicitly overridden.
|
||||||
if test "x$x_includes" = xNONE; then
|
if test "x$x_includes" = xNONE; then
|
||||||
x_includes="${with_x}/include"
|
x_includes="${with_x}/include"
|
||||||
fi
|
fi
|
||||||
@ -65525,6 +65444,13 @@ $as_echo "$as_me: WARNING: --with-ccache-dir has no meaning when ccache is not e
|
|||||||
if test "x$CCACHE" != x; then
|
if test "x$CCACHE" != x; then
|
||||||
|
|
||||||
if test "x$CCACHE" != x; then
|
if test "x$CCACHE" != x; then
|
||||||
|
if test "x$OPENJDK_BUILD_OS" = "xmacosx"; then
|
||||||
|
HAS_BAD_CCACHE=`$ECHO $CCACHE_VERSION | \
|
||||||
|
$GREP -e '^1\.' -e '^2\.' -e '^3\.0\.' -e '^3\.1\.'`
|
||||||
|
if test "x$HAS_BAD_CCACHE" != "x"; then
|
||||||
|
as_fn_error $? "On macosx, ccache 3.2 or later is required, found $CCACHE_VERSION" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
fi
|
||||||
if test "x$USE_PRECOMPILED_HEADER" = "x1"; then
|
if test "x$USE_PRECOMPILED_HEADER" = "x1"; then
|
||||||
HAS_BAD_CCACHE=`$ECHO $CCACHE_VERSION | \
|
HAS_BAD_CCACHE=`$ECHO $CCACHE_VERSION | \
|
||||||
$GREP -e '^1.*' -e '^2.*' -e '^3\.0.*' -e '^3\.1\.[0123]$'`
|
$GREP -e '^1.*' -e '^2.*' -e '^3\.0.*' -e '^3\.1\.[0123]$'`
|
||||||
|
@ -163,9 +163,9 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
|
|||||||
AC_SUBST(CACERTS_FILE)
|
AC_SUBST(CACERTS_FILE)
|
||||||
|
|
||||||
# Enable or disable unlimited crypto
|
# Enable or disable unlimited crypto
|
||||||
AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--enable-unlimited-crypto],
|
AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--disable-unlimited-crypto],
|
||||||
[Enable unlimited crypto policy @<:@disabled@:>@])],,
|
[Disable unlimited crypto policy @<:@enabled@:>@])],,
|
||||||
[enable_unlimited_crypto=no])
|
[enable_unlimited_crypto=yes])
|
||||||
if test "x$enable_unlimited_crypto" = "xyes"; then
|
if test "x$enable_unlimited_crypto" = "xyes"; then
|
||||||
UNLIMITED_CRYPTO=true
|
UNLIMITED_CRYPTO=true
|
||||||
else
|
else
|
||||||
@ -265,28 +265,14 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
|
|||||||
COMPILE_WITH_DEBUG_SYMBOLS=true
|
COMPILE_WITH_DEBUG_SYMBOLS=true
|
||||||
COPY_DEBUG_SYMBOLS=true
|
COPY_DEBUG_SYMBOLS=true
|
||||||
ZIP_EXTERNAL_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
|
elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then
|
||||||
COMPILE_WITH_DEBUG_SYMBOLS=false
|
COMPILE_WITH_DEBUG_SYMBOLS=false
|
||||||
COPY_DEBUG_SYMBOLS=false
|
COPY_DEBUG_SYMBOLS=false
|
||||||
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
|
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
|
||||||
|
|
||||||
DEBUG_BINARIES=false
|
|
||||||
STRIP_POLICY=no_strip
|
|
||||||
elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then
|
elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then
|
||||||
COMPILE_WITH_DEBUG_SYMBOLS=true
|
COMPILE_WITH_DEBUG_SYMBOLS=true
|
||||||
COPY_DEBUG_SYMBOLS=false
|
COPY_DEBUG_SYMBOLS=false
|
||||||
ZIP_EXTERNAL_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
|
elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
|
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||||||
@ -300,10 +286,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
|
|||||||
COMPILE_WITH_DEBUG_SYMBOLS=true
|
COMPILE_WITH_DEBUG_SYMBOLS=true
|
||||||
COPY_DEBUG_SYMBOLS=true
|
COPY_DEBUG_SYMBOLS=true
|
||||||
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
|
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
|
||||||
|
|
||||||
# Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true
|
|
||||||
DEBUG_BINARIES=false
|
|
||||||
STRIP_POLICY=min_strip
|
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped])
|
AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped])
|
||||||
fi
|
fi
|
||||||
@ -321,10 +303,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
|
|||||||
AC_SUBST(COMPILE_WITH_DEBUG_SYMBOLS)
|
AC_SUBST(COMPILE_WITH_DEBUG_SYMBOLS)
|
||||||
AC_SUBST(COPY_DEBUG_SYMBOLS)
|
AC_SUBST(COPY_DEBUG_SYMBOLS)
|
||||||
AC_SUBST(ZIP_EXTERNAL_DEBUG_SYMBOLS)
|
AC_SUBST(ZIP_EXTERNAL_DEBUG_SYMBOLS)
|
||||||
|
|
||||||
# Legacy values
|
|
||||||
AC_SUBST(DEBUG_BINARIES)
|
|
||||||
AC_SUBST(STRIP_POLICY)
|
|
||||||
])
|
])
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -110,7 +110,7 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
|||||||
AC_MSG_ERROR([Version string contains + but both 'BUILD' and 'OPT' are missing])
|
AC_MSG_ERROR([Version string contains + but both 'BUILD' and 'OPT' are missing])
|
||||||
fi
|
fi
|
||||||
# Stop the version part process from setting default values.
|
# Stop the version part process from setting default values.
|
||||||
# We still allow them to explicitely override though.
|
# We still allow them to explicitly override though.
|
||||||
NO_DEFAULT_VERSION_PARTS=true
|
NO_DEFAULT_VERSION_PARTS=true
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([--with-version-string fails to parse as a valid version string: $with_version_string])
|
AC_MSG_ERROR([--with-version-string fails to parse as a valid version string: $with_version_string])
|
||||||
|
@ -42,7 +42,7 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
|
|||||||
|
|
||||||
if test "x${with_x}" != x && test "x${with_x}" != xyes; then
|
if test "x${with_x}" != x && test "x${with_x}" != xyes; then
|
||||||
# The user has specified a X11 base directory. Use it for includes and
|
# The user has specified a X11 base directory. Use it for includes and
|
||||||
# libraries, unless explicitely overridden.
|
# libraries, unless explicitly overridden.
|
||||||
if test "x$x_includes" = xNONE; then
|
if test "x$x_includes" = xNONE; then
|
||||||
x_includes="${with_x}/include"
|
x_includes="${with_x}/include"
|
||||||
fi
|
fi
|
||||||
|
@ -162,7 +162,7 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
|
|||||||
# Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables.
|
# Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables.
|
||||||
PLATFORM_EXTRACT_VARS_FROM_OS($build_os)
|
PLATFORM_EXTRACT_VARS_FROM_OS($build_os)
|
||||||
PLATFORM_EXTRACT_VARS_FROM_CPU($build_cpu)
|
PLATFORM_EXTRACT_VARS_FROM_CPU($build_cpu)
|
||||||
# ..and setup our own variables. (Do this explicitely to facilitate searching)
|
# ..and setup our own variables. (Do this explicitly to facilitate searching)
|
||||||
OPENJDK_BUILD_OS="$VAR_OS"
|
OPENJDK_BUILD_OS="$VAR_OS"
|
||||||
if test "x$VAR_OS_TYPE" != x; then
|
if test "x$VAR_OS_TYPE" != x; then
|
||||||
OPENJDK_BUILD_OS_TYPE="$VAR_OS_TYPE"
|
OPENJDK_BUILD_OS_TYPE="$VAR_OS_TYPE"
|
||||||
@ -192,7 +192,7 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
|
|||||||
# Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables.
|
# Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables.
|
||||||
PLATFORM_EXTRACT_VARS_FROM_OS($host_os)
|
PLATFORM_EXTRACT_VARS_FROM_OS($host_os)
|
||||||
PLATFORM_EXTRACT_VARS_FROM_CPU($host_cpu)
|
PLATFORM_EXTRACT_VARS_FROM_CPU($host_cpu)
|
||||||
# ... and setup our own variables. (Do this explicitely to facilitate searching)
|
# ... and setup our own variables. (Do this explicitly to facilitate searching)
|
||||||
OPENJDK_TARGET_OS="$VAR_OS"
|
OPENJDK_TARGET_OS="$VAR_OS"
|
||||||
if test "x$VAR_OS_TYPE" != x; then
|
if test "x$VAR_OS_TYPE" != x; then
|
||||||
OPENJDK_TARGET_OS_TYPE="$VAR_OS_TYPE"
|
OPENJDK_TARGET_OS_TYPE="$VAR_OS_TYPE"
|
||||||
|
@ -126,6 +126,12 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_IMPORT_MODULES],
|
|||||||
if test -d "$IMPORT_MODULES_TOPDIR/modules_src"; then
|
if test -d "$IMPORT_MODULES_TOPDIR/modules_src"; then
|
||||||
IMPORT_MODULES_SRC="$IMPORT_MODULES_TOPDIR/modules_src"
|
IMPORT_MODULES_SRC="$IMPORT_MODULES_TOPDIR/modules_src"
|
||||||
fi
|
fi
|
||||||
|
# Workaround for using different imported module-info.java in Jake due to a
|
||||||
|
# change in format. Remove once new format is standard in JDK 9 and javafx
|
||||||
|
# delivers just that.
|
||||||
|
if test -d "$IMPORT_MODULES_TOPDIR/modules_src_jake"; then
|
||||||
|
IMPORT_MODULES_SRC="$IMPORT_MODULES_TOPDIR/modules_src_jake $IMPORT_MODULES_SRC"
|
||||||
|
fi
|
||||||
if test -d "$IMPORT_MODULES_TOPDIR/make"; then
|
if test -d "$IMPORT_MODULES_TOPDIR/make"; then
|
||||||
IMPORT_MODULES_MAKE="$IMPORT_MODULES_TOPDIR/make"
|
IMPORT_MODULES_MAKE="$IMPORT_MODULES_TOPDIR/make"
|
||||||
fi
|
fi
|
||||||
|
@ -53,7 +53,7 @@ TOOLCHAIN_DESCRIPTION_xlc="IBM XL C/C++"
|
|||||||
# Minimum supported versions, empty means unspecified
|
# Minimum supported versions, empty means unspecified
|
||||||
TOOLCHAIN_MINIMUM_VERSION_clang="3.2"
|
TOOLCHAIN_MINIMUM_VERSION_clang="3.2"
|
||||||
TOOLCHAIN_MINIMUM_VERSION_gcc="4.3"
|
TOOLCHAIN_MINIMUM_VERSION_gcc="4.3"
|
||||||
TOOLCHAIN_MINIMUM_VERSION_microsoft=""
|
TOOLCHAIN_MINIMUM_VERSION_microsoft="16.00.30319.01" # VS2010
|
||||||
TOOLCHAIN_MINIMUM_VERSION_solstudio="5.13"
|
TOOLCHAIN_MINIMUM_VERSION_solstudio="5.13"
|
||||||
TOOLCHAIN_MINIMUM_VERSION_xlc=""
|
TOOLCHAIN_MINIMUM_VERSION_xlc=""
|
||||||
|
|
||||||
@ -69,15 +69,15 @@ AC_DEFUN([TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS],
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
|
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
|
||||||
if [ [[ "[$]$1CC_VERSION_NUMBER" =~ (.*\.){3} ]] ]; then
|
if [ [[ "[$]$1CC_VERSION_NUMBER" =~ (.*\.){4} ]] ]; then
|
||||||
AC_MSG_WARN([C compiler version number has more than three parts (X.Y.Z): [$]$1CC_VERSION_NUMBER. Comparisons might be wrong.])
|
AC_MSG_WARN([C compiler version number has more than four parts (W.X.Y.Z): [$]$1CC_VERSION_NUMBER. Comparisons might be wrong.])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ [[ "[$]$1CC_VERSION_NUMBER" =~ [0-9]{6} ]] ]; then
|
if [ [[ "[$]$1CC_VERSION_NUMBER" =~ [0-9]{6} ]] ]; then
|
||||||
AC_MSG_WARN([C compiler version number has a part larger than 99999: [$]$1CC_VERSION_NUMBER. Comparisons might be wrong.])
|
AC_MSG_WARN([C compiler version number has a part larger than 99999: [$]$1CC_VERSION_NUMBER. Comparisons might be wrong.])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$2COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", [$]1, [$]2, [$]3) }' <<< "[$]$1CC_VERSION_NUMBER"`
|
$2COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "[$]$1CC_VERSION_NUMBER"`
|
||||||
])
|
])
|
||||||
|
|
||||||
# Check if the configured compiler (C and C++) is of a specific version or
|
# Check if the configured compiler (C and C++) is of a specific version or
|
||||||
@ -94,8 +94,8 @@ BASIC_DEFUN_NAMED([TOOLCHAIN_CHECK_COMPILER_VERSION],
|
|||||||
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
||||||
REFERENCE_VERSION=ARG_VERSION
|
REFERENCE_VERSION=ARG_VERSION
|
||||||
|
|
||||||
if [ [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ]; then
|
if [ [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ]; then
|
||||||
AC_MSG_ERROR([Internal error: Cannot compare to ARG_VERSION, only three parts (X.Y.Z) is supported])
|
AC_MSG_ERROR([Internal error: Cannot compare to ARG_VERSION, only four parts (W.X.Y.Z) is supported])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ]; then
|
if [ [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ]; then
|
||||||
@ -103,7 +103,7 @@ BASIC_DEFUN_NAMED([TOOLCHAIN_CHECK_COMPILER_VERSION],
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
||||||
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", [$]1, [$]2, [$]3) }' <<< "$REFERENCE_VERSION"`
|
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$REFERENCE_VERSION"`
|
||||||
|
|
||||||
if test [$]ARG_PREFIX[COMPARABLE_ACTUAL_VERSION] -ge $COMPARABLE_REFERENCE_VERSION ; then
|
if test [$]ARG_PREFIX[COMPARABLE_ACTUAL_VERSION] -ge $COMPARABLE_REFERENCE_VERSION ; then
|
||||||
:
|
:
|
||||||
@ -333,9 +333,11 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
|
|||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
# cc -V output typically looks like
|
# cc -V output typically looks like
|
||||||
# cc: Sun C 5.12 Linux_i386 2011/11/16
|
# cc: Sun C 5.12 Linux_i386 2011/11/16
|
||||||
|
# or
|
||||||
|
# cc: Studio 12.5 Sun C 5.14 SunOS_sparc 2016/05/31
|
||||||
COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1`
|
COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1`
|
||||||
# Check that this is likely to be the Solaris Studio cc.
|
# Check that this is likely to be the Solaris Studio cc.
|
||||||
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.*: Sun $COMPILER_NAME" > /dev/null
|
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.* Sun $COMPILER_NAME" > /dev/null
|
||||||
if test $? -ne 0; then
|
if test $? -ne 0; then
|
||||||
ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
||||||
AC_MSG_NOTICE([The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler.])
|
AC_MSG_NOTICE([The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler.])
|
||||||
@ -827,7 +829,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
|
|||||||
BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
|
BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
|
||||||
BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
|
BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
|
||||||
BUILD_AR="$AR"
|
BUILD_AR="$AR"
|
||||||
|
|
||||||
TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS([], [OPENJDK_BUILD_])
|
TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS([], [OPENJDK_BUILD_])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -842,36 +844,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
|
|||||||
AC_SUBST(BUILD_AR)
|
AC_SUBST(BUILD_AR)
|
||||||
])
|
])
|
||||||
|
|
||||||
# Setup legacy variables that are still needed as alternative ways to refer to
|
|
||||||
# parts of the toolchain.
|
|
||||||
AC_DEFUN_ONCE([TOOLCHAIN_SETUP_LEGACY],
|
|
||||||
[
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
|
||||||
# For hotspot, we need these in Windows mixed path,
|
|
||||||
# so rewrite them all. Need added .exe suffix.
|
|
||||||
HOTSPOT_CXX="$CXX.exe"
|
|
||||||
HOTSPOT_LD="$LD.exe"
|
|
||||||
HOTSPOT_MT="$MT.exe"
|
|
||||||
HOTSPOT_RC="$RC.exe"
|
|
||||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH(HOTSPOT_CXX)
|
|
||||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH(HOTSPOT_LD)
|
|
||||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH(HOTSPOT_MT)
|
|
||||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH(HOTSPOT_RC)
|
|
||||||
AC_SUBST(HOTSPOT_MT)
|
|
||||||
AC_SUBST(HOTSPOT_RC)
|
|
||||||
else
|
|
||||||
HOTSPOT_CXX="$CXX"
|
|
||||||
HOTSPOT_LD="$LD"
|
|
||||||
fi
|
|
||||||
AC_SUBST(HOTSPOT_CXX)
|
|
||||||
AC_SUBST(HOTSPOT_LD)
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xclang; then
|
|
||||||
USE_CLANG=true
|
|
||||||
fi
|
|
||||||
AC_SUBST(USE_CLANG)
|
|
||||||
])
|
|
||||||
|
|
||||||
# Do some additional checks on the detected tools.
|
# Do some additional checks on the detected tools.
|
||||||
AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
|
AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
|
||||||
[
|
[
|
||||||
|
@ -566,7 +566,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
|
|||||||
[path to microsoft C runtime dll (msvcr*.dll) (Windows only) @<:@probed@:>@])])
|
[path to microsoft C runtime dll (msvcr*.dll) (Windows only) @<:@probed@:>@])])
|
||||||
|
|
||||||
if test "x$with_msvcr_dll" != x; then
|
if test "x$with_msvcr_dll" != x; then
|
||||||
# If given explicitely by user, do not probe. If not present, fail directly.
|
# If given explicitly by user, do not probe. If not present, fail directly.
|
||||||
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCR_NAME, [$with_msvcr_dll], [--with-msvcr-dll])
|
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCR_NAME, [$with_msvcr_dll], [--with-msvcr-dll])
|
||||||
if test "x$MSVC_DLL" = x; then
|
if test "x$MSVC_DLL" = x; then
|
||||||
AC_MSG_ERROR([Could not find a proper $MSVCR_NAME as specified by --with-msvcr-dll])
|
AC_MSG_ERROR([Could not find a proper $MSVCR_NAME as specified by --with-msvcr-dll])
|
||||||
@ -589,7 +589,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
|
|||||||
|
|
||||||
if test "x$MSVCP_NAME" != "x"; then
|
if test "x$MSVCP_NAME" != "x"; then
|
||||||
if test "x$with_msvcp_dll" != x; then
|
if test "x$with_msvcp_dll" != x; then
|
||||||
# If given explicitely by user, do not probe. If not present, fail directly.
|
# If given explicitly by user, do not probe. If not present, fail directly.
|
||||||
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCP_NAME, [$with_msvcp_dll], [--with-msvcp-dll])
|
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCP_NAME, [$with_msvcp_dll], [--with-msvcp-dll])
|
||||||
if test "x$MSVC_DLL" = x; then
|
if test "x$MSVC_DLL" = x; then
|
||||||
AC_MSG_ERROR([Could not find a proper $MSVCP_NAME as specified by --with-msvcp-dll])
|
AC_MSG_ERROR([Could not find a proper $MSVCP_NAME as specified by --with-msvcp-dll])
|
||||||
|
@ -1295,8 +1295,8 @@ if [ "$SKIP_DEFAULT" != "true" ]; then
|
|||||||
OTHER_JDK="$OTHER/images/jdk"
|
OTHER_JDK="$OTHER/images/jdk"
|
||||||
OTHER_JRE="$OTHER/images/jre"
|
OTHER_JRE="$OTHER/images/jre"
|
||||||
echo "Selecting jdk images for compare"
|
echo "Selecting jdk images for compare"
|
||||||
elif [ -d "$(ls -d $THIS/licensee-src/build/*/images/jdk)" ] \
|
elif [ -d "$(ls -d $THIS/licensee-src/build/*/images/jdk 2> /dev/null)" ] \
|
||||||
&& [ -d "$(ls -d $OTHER/licensee-src/build/*/images/jdk)" ]
|
&& [ -d "$(ls -d $OTHER/licensee-src/build/*/images/jdk 2> /dev/null)" ]
|
||||||
then
|
then
|
||||||
echo "Selecting licensee images for compare"
|
echo "Selecting licensee images for compare"
|
||||||
# Simply override the THIS and OTHER dir with the build dir from
|
# Simply override the THIS and OTHER dir with the build dir from
|
||||||
|
@ -427,7 +427,7 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
jtreg: {
|
jtreg: {
|
||||||
server: "javare",
|
server: "javare",
|
||||||
revision: "4.2",
|
revision: "4.2",
|
||||||
build_number: "b03",
|
build_number: "b04",
|
||||||
checksum_file: "MD5_VALUES",
|
checksum_file: "MD5_VALUES",
|
||||||
file: "jtreg_bin-4.2.zip",
|
file: "jtreg_bin-4.2.zip",
|
||||||
environment_name: "JT_HOME",
|
environment_name: "JT_HOME",
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
^src/share/tools/IdealGraphVisualizer/dist/
|
^src/share/tools/IdealGraphVisualizer/dist/
|
||||||
^src/share/tools/IdealGraphVisualizer/nbplatform/
|
^src/share/tools/IdealGraphVisualizer/nbplatform/
|
||||||
.igv.log
|
.igv.log
|
||||||
^.hgtip
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
^\.mx.jvmci/env
|
^\.mx.jvmci/env
|
||||||
^\.mx.jvmci/.*\.pyc
|
^\.mx.jvmci/.*\.pyc
|
||||||
|
@ -549,3 +549,4 @@ d87d5d430c42342f0320ca7f5cbe0cbd1f9d62ba jdk-9+143
|
|||||||
6187b582d02aee38341dc8ce4011906e9b364e9f jdk-9+144
|
6187b582d02aee38341dc8ce4011906e9b364e9f jdk-9+144
|
||||||
61e7ea56312351657e69198c503a6f7bf865af83 jdk-9+145
|
61e7ea56312351657e69198c503a6f7bf865af83 jdk-9+145
|
||||||
a82cb5350cad96a0b4de496afebe3ded89f27efa jdk-9+146
|
a82cb5350cad96a0b4de496afebe3ded89f27efa jdk-9+146
|
||||||
|
132a72c782071cc11ab25cc7c9ee167c3632fea4 jdk-9+147
|
||||||
|
@ -190,8 +190,6 @@ JVM_AddModuleExportsToAll
|
|||||||
JVM_AddModuleExportsToAllUnnamed
|
JVM_AddModuleExportsToAllUnnamed
|
||||||
JVM_AddModulePackage
|
JVM_AddModulePackage
|
||||||
JVM_AddReadsModule
|
JVM_AddReadsModule
|
||||||
JVM_CanReadModule
|
|
||||||
JVM_DefineModule
|
JVM_DefineModule
|
||||||
JVM_IsExportedToModule
|
|
||||||
JVM_SetBootLoaderUnnamedModule
|
JVM_SetBootLoaderUnnamedModule
|
||||||
JVM_GetModuleByPackageName
|
JVM_GetModuleByPackageName
|
||||||
|
@ -55,6 +55,9 @@ BUILD_HOTSPOT_JTREG_NATIVE_SRC := \
|
|||||||
$(HOTSPOT_TOPDIR)/test/compiler/calls \
|
$(HOTSPOT_TOPDIR)/test/compiler/calls \
|
||||||
$(HOTSPOT_TOPDIR)/test/compiler/native \
|
$(HOTSPOT_TOPDIR)/test/compiler/native \
|
||||||
$(HOTSPOT_TOPDIR)/test/serviceability/jvmti/GetNamedModule \
|
$(HOTSPOT_TOPDIR)/test/serviceability/jvmti/GetNamedModule \
|
||||||
|
$(HOTSPOT_TOPDIR)/test/serviceability/jvmti/AddModuleReads \
|
||||||
|
$(HOTSPOT_TOPDIR)/test/serviceability/jvmti/AddModuleExportsAndOpens \
|
||||||
|
$(HOTSPOT_TOPDIR)/test/serviceability/jvmti/AddModuleUsesAndProvides \
|
||||||
$(HOTSPOT_TOPDIR)/test/testlibrary/jvmti \
|
$(HOTSPOT_TOPDIR)/test/testlibrary/jvmti \
|
||||||
$(HOTSPOT_TOPDIR)/test/compiler/jvmci/jdk.vm.ci.code.test \
|
$(HOTSPOT_TOPDIR)/test/compiler/jvmci/jdk.vm.ci.code.test \
|
||||||
$(HOTSPOT_TOPDIR)/test/serviceability/jvmti/GetModulesInfo \
|
$(HOTSPOT_TOPDIR)/test/serviceability/jvmti/GetModulesInfo \
|
||||||
@ -81,6 +84,9 @@ ifeq ($(TOOLCHAIN_TYPE), solstudio)
|
|||||||
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_liboverflow := -lc
|
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_liboverflow := -lc
|
||||||
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libSimpleClassFileLoadHook := -lc
|
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libSimpleClassFileLoadHook := -lc
|
||||||
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libGetNamedModuleTest := -lc
|
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libGetNamedModuleTest := -lc
|
||||||
|
BUILD_HOTSPOT_JTREG_LIBRARIES_LDFLAGS_libAddModuleReadsTest := -lc
|
||||||
|
BUILD_HOTSPOT_JTREG_LIBRARIES_LDFLAGS_libAddModuleExportsAndOpensTest := -lc
|
||||||
|
BUILD_HOTSPOT_JTREG_LIBRARIES_LDFLAGS_libAddModuleUsesAndProvidesTest := -lc
|
||||||
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libMAAClassFileLoadHook := -lc
|
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libMAAClassFileLoadHook := -lc
|
||||||
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libMAAClassLoadPrepare := -lc
|
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libMAAClassLoadPrepare := -lc
|
||||||
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libMAAThreadStart := -lc
|
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libMAAThreadStart := -lc
|
||||||
|
@ -30,9 +30,7 @@ module jdk.vm.ci {
|
|||||||
uses jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory;
|
uses jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory;
|
||||||
|
|
||||||
provides jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory with
|
provides jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory with
|
||||||
jdk.vm.ci.hotspot.aarch64.AArch64HotSpotJVMCIBackendFactory;
|
jdk.vm.ci.hotspot.aarch64.AArch64HotSpotJVMCIBackendFactory,
|
||||||
provides jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory with
|
jdk.vm.ci.hotspot.amd64.AMD64HotSpotJVMCIBackendFactory,
|
||||||
jdk.vm.ci.hotspot.amd64.AMD64HotSpotJVMCIBackendFactory;
|
|
||||||
provides jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory with
|
|
||||||
jdk.vm.ci.hotspot.sparc.SPARCHotSpotJVMCIBackendFactory;
|
jdk.vm.ci.hotspot.sparc.SPARCHotSpotJVMCIBackendFactory;
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,8 @@
|
|||||||
#include "utilities/ostream.hpp"
|
#include "utilities/ostream.hpp"
|
||||||
|
|
||||||
#define UNNAMED_MODULE "Unnamed Module"
|
#define UNNAMED_MODULE "Unnamed Module"
|
||||||
|
#define JAVAPKG "java/"
|
||||||
|
#define JAVAPKG_LEN 5
|
||||||
|
|
||||||
class ModuleClosure;
|
class ModuleClosure;
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include "classfile/packageEntry.hpp"
|
#include "classfile/packageEntry.hpp"
|
||||||
#include "classfile/stringTable.hpp"
|
#include "classfile/stringTable.hpp"
|
||||||
#include "classfile/symbolTable.hpp"
|
#include "classfile/symbolTable.hpp"
|
||||||
|
#include "classfile/systemDictionary.hpp"
|
||||||
#include "classfile/vmSymbols.hpp"
|
#include "classfile/vmSymbols.hpp"
|
||||||
#include "logging/log.hpp"
|
#include "logging/log.hpp"
|
||||||
#include "memory/resourceArea.hpp"
|
#include "memory/resourceArea.hpp"
|
||||||
@ -44,6 +45,7 @@
|
|||||||
#include "runtime/handles.inline.hpp"
|
#include "runtime/handles.inline.hpp"
|
||||||
#include "runtime/javaCalls.hpp"
|
#include "runtime/javaCalls.hpp"
|
||||||
#include "runtime/reflection.hpp"
|
#include "runtime/reflection.hpp"
|
||||||
|
#include "utilities/stringUtils.hpp"
|
||||||
#include "utilities/utf8.hpp"
|
#include "utilities/utf8.hpp"
|
||||||
|
|
||||||
static bool verify_module_name(char *module_name) {
|
static bool verify_module_name(char *module_name) {
|
||||||
@ -290,6 +292,14 @@ void Modules::define_module(jobject module, jstring version,
|
|||||||
|
|
||||||
const char* module_version = get_module_version(version);
|
const char* module_version = get_module_version(version);
|
||||||
|
|
||||||
|
oop loader = java_lang_reflect_Module::loader(module_handle());
|
||||||
|
// Make sure loader is not the jdk.internal.reflect.DelegatingClassLoader.
|
||||||
|
if (loader != java_lang_ClassLoader::non_reflection_class_loader(loader)) {
|
||||||
|
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
|
||||||
|
"Class loader is an invalid delegating class loader");
|
||||||
|
}
|
||||||
|
Handle h_loader = Handle(THREAD, loader);
|
||||||
|
|
||||||
objArrayOop packages_oop = objArrayOop(JNIHandles::resolve(packages));
|
objArrayOop packages_oop = objArrayOop(JNIHandles::resolve(packages));
|
||||||
objArrayHandle packages_h(THREAD, packages_oop);
|
objArrayHandle packages_h(THREAD, packages_oop);
|
||||||
int num_packages = (packages_h == NULL ? 0 : packages_h->length());
|
int num_packages = (packages_h == NULL ? 0 : packages_h->length());
|
||||||
@ -310,6 +320,21 @@ void Modules::define_module(jobject module, jstring version,
|
|||||||
err_msg("Invalid package name: %s for module: %s",
|
err_msg("Invalid package name: %s for module: %s",
|
||||||
package_name, module_name));
|
package_name, module_name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Only modules defined to either the boot or platform class loader, can define a "java/" package.
|
||||||
|
if (!h_loader.is_null() &&
|
||||||
|
!SystemDictionary::is_platform_class_loader(h_loader) &&
|
||||||
|
strncmp(package_name, JAVAPKG, JAVAPKG_LEN) == 0) {
|
||||||
|
const char* class_loader_name = SystemDictionary::loader_name(h_loader());
|
||||||
|
StringUtils::replace_no_expand(package_name, "/", ".");
|
||||||
|
const char* msg_text1 = "Class loader (instance of): ";
|
||||||
|
const char* msg_text2 = " tried to define prohibited package name: ";
|
||||||
|
size_t len = strlen(msg_text1) + strlen(class_loader_name) + strlen(msg_text2) + strlen(package_name) + 1;
|
||||||
|
char* message = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, len);
|
||||||
|
jio_snprintf(message, len, "%s%s%s%s", msg_text1, class_loader_name, msg_text2, package_name);
|
||||||
|
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), message);
|
||||||
|
}
|
||||||
|
|
||||||
Symbol* pkg_symbol = SymbolTable::new_symbol(package_name, CHECK);
|
Symbol* pkg_symbol = SymbolTable::new_symbol(package_name, CHECK);
|
||||||
// append_if_missing() returns FALSE if entry already exists.
|
// append_if_missing() returns FALSE if entry already exists.
|
||||||
if (!pkg_list->append_if_missing(pkg_symbol)) {
|
if (!pkg_list->append_if_missing(pkg_symbol)) {
|
||||||
@ -319,20 +344,6 @@ void Modules::define_module(jobject module, jstring version,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
oop loader = java_lang_reflect_Module::loader(module_handle());
|
|
||||||
// Make sure loader is not the sun.reflect.DelegatingClassLoader.
|
|
||||||
if (loader != java_lang_ClassLoader::non_reflection_class_loader(loader)) {
|
|
||||||
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
|
|
||||||
"Class loader is an invalid delegating class loader");
|
|
||||||
}
|
|
||||||
Handle h_loader = Handle(THREAD, loader);
|
|
||||||
|
|
||||||
// Check that loader is a subclass of java.lang.ClassLoader.
|
|
||||||
if (loader != NULL && !java_lang_ClassLoader::is_subclass(h_loader->klass())) {
|
|
||||||
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
|
|
||||||
"Class loader is not a subclass of java.lang.ClassLoader");
|
|
||||||
}
|
|
||||||
|
|
||||||
ModuleEntryTable* module_table = get_module_entry_table(h_loader, CHECK);
|
ModuleEntryTable* module_table = get_module_entry_table(h_loader, CHECK);
|
||||||
assert(module_table != NULL, "module entry table shouldn't be null");
|
assert(module_table != NULL, "module entry table shouldn't be null");
|
||||||
|
|
||||||
@ -595,122 +606,6 @@ void Modules::add_reads_module(jobject from_module, jobject to_module, TRAPS) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
jboolean Modules::can_read_module(jobject asking_module, jobject target_module, TRAPS) {
|
|
||||||
if (asking_module == NULL) {
|
|
||||||
THROW_MSG_(vmSymbols::java_lang_NullPointerException(),
|
|
||||||
"asking_module is null", JNI_FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
ModuleEntry* asking_module_entry = get_module_entry(asking_module, CHECK_false);
|
|
||||||
if (asking_module_entry == NULL) {
|
|
||||||
THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(),
|
|
||||||
"asking_module is invalid", JNI_FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calling can_read_all_unnamed() with NULL tests if a module is loose.
|
|
||||||
if (target_module == NULL) {
|
|
||||||
return asking_module_entry->can_read_all_unnamed();
|
|
||||||
}
|
|
||||||
|
|
||||||
ModuleEntry* target_module_entry = get_module_entry(target_module, CHECK_false);
|
|
||||||
if (target_module_entry == NULL) {
|
|
||||||
THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(),
|
|
||||||
"target_module is invalid", JNI_FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
ResourceMark rm(THREAD);
|
|
||||||
log_debug(modules)("can_read_module(): module %s trying to read module %s, allowed = %s",
|
|
||||||
asking_module_entry->is_named() ?
|
|
||||||
asking_module_entry->name()->as_C_string() : UNNAMED_MODULE,
|
|
||||||
target_module_entry->is_named() ?
|
|
||||||
target_module_entry->name()->as_C_string() : UNNAMED_MODULE,
|
|
||||||
BOOL_TO_STR(asking_module_entry == target_module_entry ||
|
|
||||||
(asking_module_entry->can_read_all_unnamed() &&
|
|
||||||
!target_module_entry->is_named()) ||
|
|
||||||
asking_module_entry->can_read(target_module_entry)));
|
|
||||||
|
|
||||||
// Return true if:
|
|
||||||
// 1. the modules are the same, or
|
|
||||||
// 2. the asking_module is unnamed (because unnamed modules read everybody), or
|
|
||||||
// 3. the asking_module is loose and the target module is unnamed, or
|
|
||||||
// 4. if can_read() returns true.
|
|
||||||
if (asking_module_entry == target_module_entry ||
|
|
||||||
(asking_module_entry->can_read_all_unnamed() && !target_module_entry->is_named())) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return asking_module_entry->can_read(target_module_entry);
|
|
||||||
}
|
|
||||||
|
|
||||||
jboolean Modules::is_exported_to_module(jobject from_module, jstring package,
|
|
||||||
jobject to_module, TRAPS) {
|
|
||||||
if (package == NULL) {
|
|
||||||
THROW_MSG_(vmSymbols::java_lang_NullPointerException(),
|
|
||||||
"package is null", JNI_FALSE);
|
|
||||||
}
|
|
||||||
if (from_module == NULL) {
|
|
||||||
THROW_MSG_(vmSymbols::java_lang_NullPointerException(),
|
|
||||||
"from_module is null", JNI_FALSE);
|
|
||||||
}
|
|
||||||
ModuleEntry* from_module_entry = get_module_entry(from_module, CHECK_false);
|
|
||||||
if (from_module_entry == NULL) {
|
|
||||||
THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(),
|
|
||||||
"from_module is invalid", JNI_FALSE);
|
|
||||||
}
|
|
||||||
ModuleEntry* to_module_entry;
|
|
||||||
if (to_module == NULL) {
|
|
||||||
THROW_MSG_(vmSymbols::java_lang_NullPointerException(),
|
|
||||||
"to_module is null", JNI_FALSE);
|
|
||||||
}
|
|
||||||
to_module_entry = get_module_entry(to_module, CHECK_false);
|
|
||||||
if (to_module_entry == NULL) {
|
|
||||||
THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(),
|
|
||||||
"to_module is invalid", JNI_FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
PackageEntry *package_entry = get_package_entry(from_module_entry, package,
|
|
||||||
CHECK_false);
|
|
||||||
ResourceMark rm(THREAD);
|
|
||||||
if (package_entry == NULL) {
|
|
||||||
THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(),
|
|
||||||
err_msg("Package not found in from_module: %s",
|
|
||||||
from_module_entry->is_named() ?
|
|
||||||
from_module_entry->name()->as_C_string() : UNNAMED_MODULE),
|
|
||||||
JNI_FALSE);
|
|
||||||
}
|
|
||||||
if (package_entry->module() != from_module_entry) {
|
|
||||||
THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(),
|
|
||||||
err_msg("Package: %s found in module %s, not in from_module: %s",
|
|
||||||
package_entry->name()->as_C_string(),
|
|
||||||
package_entry->module()->is_named() ?
|
|
||||||
package_entry->module()->name()->as_C_string() : UNNAMED_MODULE,
|
|
||||||
from_module_entry->is_named() ?
|
|
||||||
from_module_entry->name()->as_C_string() : UNNAMED_MODULE),
|
|
||||||
JNI_FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
log_debug(modules)("is_exported_to_module: package %s from module %s checking"
|
|
||||||
" if exported to module %s, exported? = %s",
|
|
||||||
package_entry->name()->as_C_string(),
|
|
||||||
from_module_entry->is_named() ?
|
|
||||||
from_module_entry->name()->as_C_string() : UNNAMED_MODULE,
|
|
||||||
to_module_entry->is_named() ?
|
|
||||||
to_module_entry->name()->as_C_string() : UNNAMED_MODULE,
|
|
||||||
BOOL_TO_STR(!from_module_entry->is_named() ||
|
|
||||||
package_entry->is_unqual_exported() ||
|
|
||||||
from_module_entry == to_module_entry ||
|
|
||||||
package_entry->is_qexported_to(to_module_entry)));
|
|
||||||
|
|
||||||
// Return true if:
|
|
||||||
// 1. from_module is unnamed because unnamed modules export all their packages (by default), or
|
|
||||||
// 2. if the package is unqualifiedly exported, or
|
|
||||||
// 3. if the modules are the same, or
|
|
||||||
// 4. if the package is exported to to_module
|
|
||||||
return (!from_module_entry->is_named() ||
|
|
||||||
package_entry->is_unqual_exported() ||
|
|
||||||
from_module_entry == to_module_entry ||
|
|
||||||
package_entry->is_qexported_to(to_module_entry));
|
|
||||||
}
|
|
||||||
|
|
||||||
// This method is called by JFR and JNI.
|
// This method is called by JFR and JNI.
|
||||||
jobject Modules::get_module(jclass clazz, TRAPS) {
|
jobject Modules::get_module(jclass clazz, TRAPS) {
|
||||||
assert(ModuleEntryTable::javabase_defined(), "Attempt to call get_module before java.base is defined");
|
assert(ModuleEntryTable::javabase_defined(), "Attempt to call get_module before java.base is defined");
|
||||||
@ -860,11 +755,27 @@ void Modules::add_module_package(jobject module, jstring package, TRAPS) {
|
|||||||
err_msg("Invalid package name: %s", package_name));
|
err_msg("Invalid package name: %s", package_name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ClassLoaderData *loader_data = module_entry->loader_data();
|
||||||
|
|
||||||
|
// Only modules defined to either the boot or platform class loader, can define a "java/" package.
|
||||||
|
if (!loader_data->is_the_null_class_loader_data() &&
|
||||||
|
!loader_data->is_platform_class_loader_data() &&
|
||||||
|
strncmp(package_name, JAVAPKG, JAVAPKG_LEN) == 0) {
|
||||||
|
const char* class_loader_name = SystemDictionary::loader_name(loader_data);
|
||||||
|
StringUtils::replace_no_expand(package_name, "/", ".");
|
||||||
|
const char* msg_text1 = "Class loader (instance of): ";
|
||||||
|
const char* msg_text2 = " tried to define prohibited package name: ";
|
||||||
|
size_t len = strlen(msg_text1) + strlen(class_loader_name) + strlen(msg_text2) + strlen(package_name) + 1;
|
||||||
|
char* message = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, len);
|
||||||
|
jio_snprintf(message, len, "%s%s%s%s", msg_text1, class_loader_name, msg_text2, package_name);
|
||||||
|
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), message);
|
||||||
|
}
|
||||||
|
|
||||||
log_debug(modules)("add_module_package(): Adding package %s to module %s",
|
log_debug(modules)("add_module_package(): Adding package %s to module %s",
|
||||||
package_name, module_entry->name()->as_C_string());
|
package_name, module_entry->name()->as_C_string());
|
||||||
|
|
||||||
TempNewSymbol pkg_symbol = SymbolTable::new_symbol(package_name, CHECK);
|
TempNewSymbol pkg_symbol = SymbolTable::new_symbol(package_name, CHECK);
|
||||||
PackageEntryTable* package_table = module_entry->loader_data()->packages();
|
PackageEntryTable* package_table = loader_data->packages();
|
||||||
assert(package_table != NULL, "Missing package_table");
|
assert(package_table != NULL, "Missing package_table");
|
||||||
|
|
||||||
bool pkg_exists = false;
|
bool pkg_exists = false;
|
||||||
|
@ -93,24 +93,6 @@ public:
|
|||||||
// module does not exist.
|
// module does not exist.
|
||||||
static void add_reads_module(jobject from_module, jobject to_module, TRAPS);
|
static void add_reads_module(jobject from_module, jobject to_module, TRAPS);
|
||||||
|
|
||||||
// can_read_module returns TRUE if module asking_module can read module target_module,
|
|
||||||
// or if they are the same module, or if the asking_module is loose and target_module
|
|
||||||
// is null.
|
|
||||||
//
|
|
||||||
// Throws IllegalArgumentException if:
|
|
||||||
// * either asking_module or target_module is not a java.lang.reflect.Module
|
|
||||||
static jboolean can_read_module(jobject asking_module, jobject target_module, TRAPS);
|
|
||||||
|
|
||||||
// If package is valid then this returns TRUE if module from_module exports
|
|
||||||
// package to module to_module, if from_module and to_module are the same
|
|
||||||
// module, or if package is exported without qualification.
|
|
||||||
//
|
|
||||||
// IllegalArgumentException is throw if:
|
|
||||||
// * Either to_module or from_module does not exist
|
|
||||||
// * package is syntactically incorrect
|
|
||||||
// * package is not in from_module
|
|
||||||
static jboolean is_exported_to_module(jobject from_module, jstring package, jobject to_module, TRAPS);
|
|
||||||
|
|
||||||
// Return the java.lang.reflect.Module object for this class object.
|
// Return the java.lang.reflect.Module object for this class object.
|
||||||
static jobject get_module(jclass clazz, TRAPS);
|
static jobject get_module(jclass clazz, TRAPS);
|
||||||
|
|
||||||
|
@ -451,8 +451,6 @@
|
|||||||
template(loader_name, "loader") \
|
template(loader_name, "loader") \
|
||||||
template(module_name, "module") \
|
template(module_name, "module") \
|
||||||
template(getModule_name, "getModule") \
|
template(getModule_name, "getModule") \
|
||||||
template(addReads_name, "addReads") \
|
|
||||||
template(addReads_signature, "(Ljava/lang/reflect/Module;Ljava/lang/reflect/Module;)V") \
|
|
||||||
template(input_stream_void_signature, "(Ljava/io/InputStream;)V") \
|
template(input_stream_void_signature, "(Ljava/io/InputStream;)V") \
|
||||||
template(definePackage_name, "definePackage") \
|
template(definePackage_name, "definePackage") \
|
||||||
template(definePackage_signature, "(Ljava/lang/String;Ljava/lang/reflect/Module;)Ljava/lang/Package;") \
|
template(definePackage_signature, "(Ljava/lang/String;Ljava/lang/reflect/Module;)Ljava/lang/Package;") \
|
||||||
@ -645,6 +643,15 @@
|
|||||||
/* JVMTI/java.lang.instrument support and VM Attach mechanism */ \
|
/* JVMTI/java.lang.instrument support and VM Attach mechanism */ \
|
||||||
template(jdk_internal_module_Modules, "jdk/internal/module/Modules") \
|
template(jdk_internal_module_Modules, "jdk/internal/module/Modules") \
|
||||||
template(jdk_internal_vm_VMSupport, "jdk/internal/vm/VMSupport") \
|
template(jdk_internal_vm_VMSupport, "jdk/internal/vm/VMSupport") \
|
||||||
|
template(addReads_name, "addReads") \
|
||||||
|
template(addReads_signature, "(Ljava/lang/reflect/Module;Ljava/lang/reflect/Module;)V") \
|
||||||
|
template(addExports_name, "addExports") \
|
||||||
|
template(addOpens_name, "addOpens") \
|
||||||
|
template(addExports_signature, "(Ljava/lang/reflect/Module;Ljava/lang/String;Ljava/lang/reflect/Module;)V") \
|
||||||
|
template(addUses_name, "addUses") \
|
||||||
|
template(addUses_signature, "(Ljava/lang/reflect/Module;Ljava/lang/Class;)V") \
|
||||||
|
template(addProvides_name, "addProvides") \
|
||||||
|
template(addProvides_signature, "(Ljava/lang/reflect/Module;Ljava/lang/Class;Ljava/lang/Class;)V") \
|
||||||
template(transformedByAgent_name, "transformedByAgent") \
|
template(transformedByAgent_name, "transformedByAgent") \
|
||||||
template(transformedByAgent_signature, "(Ljava/lang/reflect/Module;)V") \
|
template(transformedByAgent_signature, "(Ljava/lang/reflect/Module;)V") \
|
||||||
template(appendToClassPathForInstrumentation_name, "appendToClassPathForInstrumentation") \
|
template(appendToClassPathForInstrumentation_name, "appendToClassPathForInstrumentation") \
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include "classfile/classFileParser.hpp"
|
#include "classfile/classFileParser.hpp"
|
||||||
#include "classfile/classFileStream.hpp"
|
#include "classfile/classFileStream.hpp"
|
||||||
#include "classfile/javaClasses.hpp"
|
#include "classfile/javaClasses.hpp"
|
||||||
|
#include "classfile/moduleEntry.hpp"
|
||||||
#include "classfile/systemDictionary.hpp"
|
#include "classfile/systemDictionary.hpp"
|
||||||
#include "classfile/systemDictionaryShared.hpp"
|
#include "classfile/systemDictionaryShared.hpp"
|
||||||
#include "classfile/verifier.hpp"
|
#include "classfile/verifier.hpp"
|
||||||
@ -2383,18 +2384,17 @@ Klass* InstanceKlass::compute_enclosing_class_impl(instanceKlassHandle self,
|
|||||||
|
|
||||||
// Only boot and platform class loaders can define classes in "java/" packages.
|
// Only boot and platform class loaders can define classes in "java/" packages.
|
||||||
void InstanceKlass::check_prohibited_package(Symbol* class_name,
|
void InstanceKlass::check_prohibited_package(Symbol* class_name,
|
||||||
Handle class_loader,
|
Handle class_loader,
|
||||||
TRAPS) {
|
TRAPS) {
|
||||||
const char* javapkg = "java/";
|
|
||||||
ResourceMark rm(THREAD);
|
ResourceMark rm(THREAD);
|
||||||
if (!class_loader.is_null() &&
|
if (!class_loader.is_null() &&
|
||||||
!SystemDictionary::is_platform_class_loader(class_loader) &&
|
!SystemDictionary::is_platform_class_loader(class_loader) &&
|
||||||
class_name != NULL &&
|
class_name != NULL &&
|
||||||
strncmp(class_name->as_C_string(), javapkg, strlen(javapkg)) == 0) {
|
strncmp(class_name->as_C_string(), JAVAPKG, JAVAPKG_LEN) == 0) {
|
||||||
TempNewSymbol pkg_name = InstanceKlass::package_from_name(class_name, CHECK);
|
TempNewSymbol pkg_name = InstanceKlass::package_from_name(class_name, CHECK);
|
||||||
assert(pkg_name != NULL, "Error in parsing package name starting with 'java/'");
|
assert(pkg_name != NULL, "Error in parsing package name starting with 'java/'");
|
||||||
char* name = pkg_name->as_C_string();
|
char* name = pkg_name->as_C_string();
|
||||||
const char* class_loader_name = InstanceKlass::cast(class_loader()->klass())->name()->as_C_string();
|
const char* class_loader_name = SystemDictionary::loader_name(class_loader());
|
||||||
StringUtils::replace_no_expand(name, "/", ".");
|
StringUtils::replace_no_expand(name, "/", ".");
|
||||||
const char* msg_text1 = "Class loader (instance of): ";
|
const char* msg_text1 = "Class loader (instance of): ";
|
||||||
const char* msg_text2 = " tried to load prohibited package name: ";
|
const char* msg_text2 = " tried to load prohibited package name: ";
|
||||||
|
@ -3475,40 +3475,6 @@ JNI_ENTRY(jobject, jni_GetModule(JNIEnv* env, jclass clazz))
|
|||||||
JNI_END
|
JNI_END
|
||||||
|
|
||||||
|
|
||||||
JNI_ENTRY(void, jni_AddModuleReads(JNIEnv* env, jobject m1, jobject m2))
|
|
||||||
JNIWrapper("AddModuleReads");
|
|
||||||
if (m1 == NULL || m2 == NULL) {
|
|
||||||
THROW(vmSymbols::java_lang_NullPointerException());
|
|
||||||
}
|
|
||||||
JavaValue result(T_VOID);
|
|
||||||
Handle m1_h(THREAD, JNIHandles::resolve(m1));
|
|
||||||
if (!java_lang_reflect_Module::is_instance(m1_h())) {
|
|
||||||
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "Bad m1 object");
|
|
||||||
}
|
|
||||||
Handle m2_h(THREAD, JNIHandles::resolve(m2));
|
|
||||||
if (!java_lang_reflect_Module::is_instance(m2_h())) {
|
|
||||||
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "Bad m2 object");
|
|
||||||
}
|
|
||||||
JavaCalls::call_static(&result,
|
|
||||||
KlassHandle(THREAD, SystemDictionary::module_Modules_klass()),
|
|
||||||
vmSymbols::addReads_name(),
|
|
||||||
vmSymbols::addReads_signature(),
|
|
||||||
m1_h,
|
|
||||||
m2_h,
|
|
||||||
THREAD);
|
|
||||||
JNI_END
|
|
||||||
|
|
||||||
|
|
||||||
JNI_ENTRY(jboolean, jni_CanReadModule(JNIEnv* env, jobject m1, jobject m2))
|
|
||||||
JNIWrapper("CanReadModule");
|
|
||||||
if (m1 == NULL || m2 == NULL) {
|
|
||||||
THROW_(vmSymbols::java_lang_NullPointerException(), JNI_FALSE);
|
|
||||||
}
|
|
||||||
jboolean res = Modules::can_read_module(m1, m2, CHECK_false);
|
|
||||||
return res;
|
|
||||||
JNI_END
|
|
||||||
|
|
||||||
|
|
||||||
// Structure containing all jni functions
|
// Structure containing all jni functions
|
||||||
struct JNINativeInterface_ jni_NativeInterface = {
|
struct JNINativeInterface_ jni_NativeInterface = {
|
||||||
NULL,
|
NULL,
|
||||||
@ -3792,9 +3758,7 @@ struct JNINativeInterface_ jni_NativeInterface = {
|
|||||||
|
|
||||||
// Module features
|
// Module features
|
||||||
|
|
||||||
jni_GetModule,
|
jni_GetModule
|
||||||
jni_AddModuleReads,
|
|
||||||
jni_CanReadModule
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -770,12 +770,6 @@ struct JNINativeInterface_ {
|
|||||||
|
|
||||||
jobject (JNICALL *GetModule)
|
jobject (JNICALL *GetModule)
|
||||||
(JNIEnv* env, jclass clazz);
|
(JNIEnv* env, jclass clazz);
|
||||||
|
|
||||||
void (JNICALL *AddModuleReads)
|
|
||||||
(JNIEnv* env, jobject m1, jobject m2);
|
|
||||||
|
|
||||||
jboolean (JNICALL *CanReadModule)
|
|
||||||
(JNIEnv* env, jobject m1, jobject m2);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1874,14 +1868,6 @@ struct JNIEnv_ {
|
|||||||
return functions->GetModule(this, clazz);
|
return functions->GetModule(this, clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddModuleReads(jobject fromModule, jobject sourceModule) {
|
|
||||||
functions->AddModuleReads(this, fromModule, sourceModule);
|
|
||||||
}
|
|
||||||
|
|
||||||
jboolean CanReadModule(jobject askingModule, jobject sourceModule) {
|
|
||||||
return functions->CanReadModule(this, askingModule, sourceModule);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2001,37 +2001,6 @@ JNI_ENTRY_CHECKED(jobject,
|
|||||||
return result;
|
return result;
|
||||||
JNI_END
|
JNI_END
|
||||||
|
|
||||||
JNI_ENTRY_CHECKED(void,
|
|
||||||
checked_jni_AddModuleReads(JNIEnv *env,
|
|
||||||
jobject fromModule,
|
|
||||||
jobject sourceModule))
|
|
||||||
functionEnter(thr);
|
|
||||||
IN_VM(
|
|
||||||
jniCheck::validate_object(thr, fromModule);
|
|
||||||
if (sourceModule != NULL) {
|
|
||||||
jniCheck::validate_object(thr, sourceModule);
|
|
||||||
}
|
|
||||||
)
|
|
||||||
UNCHECKED()->AddModuleReads(env,fromModule,sourceModule);
|
|
||||||
functionExit(thr);
|
|
||||||
JNI_END
|
|
||||||
|
|
||||||
JNI_ENTRY_CHECKED(jboolean,
|
|
||||||
checked_jni_CanReadModule(JNIEnv *env,
|
|
||||||
jobject askingModule,
|
|
||||||
jobject sourceModule))
|
|
||||||
functionEnter(thr);
|
|
||||||
IN_VM(
|
|
||||||
jniCheck::validate_object(thr, askingModule);
|
|
||||||
if (sourceModule != NULL) {
|
|
||||||
jniCheck::validate_object(thr, sourceModule);
|
|
||||||
}
|
|
||||||
)
|
|
||||||
jboolean result = UNCHECKED()->CanReadModule(env,askingModule,sourceModule);
|
|
||||||
functionExit(thr);
|
|
||||||
return result;
|
|
||||||
JNI_END
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Structure containing all checked jni functions
|
* Structure containing all checked jni functions
|
||||||
*/
|
*/
|
||||||
@ -2317,9 +2286,7 @@ struct JNINativeInterface_ checked_jni_NativeInterface = {
|
|||||||
|
|
||||||
// Module Features
|
// Module Features
|
||||||
|
|
||||||
checked_jni_GetModule,
|
checked_jni_GetModule
|
||||||
checked_jni_AddModuleReads,
|
|
||||||
checked_jni_CanReadModule
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1008,8 +1008,8 @@ JVM_END
|
|||||||
|
|
||||||
// Module support //////////////////////////////////////////////////////////////////////////////
|
// Module support //////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
JVM_ENTRY(void, JVM_DefineModule(JNIEnv *env, jobject module, jstring version, jstring location,
|
JVM_ENTRY(void, JVM_DefineModule(JNIEnv *env, jobject module, jboolean is_open, jstring version,
|
||||||
jobjectArray packages))
|
jstring location, jobjectArray packages))
|
||||||
JVMWrapper("JVM_DefineModule");
|
JVMWrapper("JVM_DefineModule");
|
||||||
Modules::define_module(module, version, location, packages, CHECK);
|
Modules::define_module(module, version, location, packages, CHECK);
|
||||||
JVM_END
|
JVM_END
|
||||||
@ -1039,16 +1039,6 @@ JVM_ENTRY (void, JVM_AddReadsModule(JNIEnv *env, jobject from_module, jobject so
|
|||||||
Modules::add_reads_module(from_module, source_module, CHECK);
|
Modules::add_reads_module(from_module, source_module, CHECK);
|
||||||
JVM_END
|
JVM_END
|
||||||
|
|
||||||
JVM_ENTRY(jboolean, JVM_CanReadModule(JNIEnv *env, jobject asking_module, jobject source_module))
|
|
||||||
JVMWrapper("JVM_CanReadModule");
|
|
||||||
return Modules::can_read_module(asking_module, source_module, THREAD);
|
|
||||||
JVM_END
|
|
||||||
|
|
||||||
JVM_ENTRY(jboolean, JVM_IsExportedToModule(JNIEnv *env, jobject from_module, jstring package, jobject to_module))
|
|
||||||
JVMWrapper("JVM_IsExportedToModule");
|
|
||||||
return Modules::is_exported_to_module(from_module, package, to_module, THREAD);
|
|
||||||
JVM_END
|
|
||||||
|
|
||||||
JVM_ENTRY (void, JVM_AddModulePackage(JNIEnv *env, jobject module, jstring package))
|
JVM_ENTRY (void, JVM_AddModulePackage(JNIEnv *env, jobject module, jstring package))
|
||||||
JVMWrapper("JVM_AddModulePackage");
|
JVMWrapper("JVM_AddModulePackage");
|
||||||
Modules::add_module_package(module, package, CHECK);
|
Modules::add_module_package(module, package, CHECK);
|
||||||
|
@ -413,8 +413,8 @@ JVM_DefineClassWithSource(JNIEnv *env, const char *name, jobject loader,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
JNIEXPORT void JNICALL
|
JNIEXPORT void JNICALL
|
||||||
JVM_DefineModule(JNIEnv *env, jobject module, jstring version, jstring location,
|
JVM_DefineModule(JNIEnv *env, jobject module, jboolean is_open, jstring version,
|
||||||
jobjectArray packages);
|
jstring location, jobjectArray packages);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL
|
JNIEXPORT void JNICALL
|
||||||
JVM_SetBootLoaderUnnamedModule(JNIEnv *env, jobject module);
|
JVM_SetBootLoaderUnnamedModule(JNIEnv *env, jobject module);
|
||||||
@ -431,12 +431,6 @@ JVM_AddModuleExportsToAll(JNIEnv *env, jobject from_module, jstring package);
|
|||||||
JNIEXPORT void JNICALL
|
JNIEXPORT void JNICALL
|
||||||
JVM_AddReadsModule(JNIEnv *env, jobject from_module, jobject source_module);
|
JVM_AddReadsModule(JNIEnv *env, jobject from_module, jobject source_module);
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL
|
|
||||||
JVM_CanReadModule(JNIEnv *env, jobject asking_module, jobject source_module);
|
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL
|
|
||||||
JVM_IsExportedToModule(JNIEnv *env, jobject from_module, jstring package, jobject to_module);
|
|
||||||
|
|
||||||
JNIEXPORT void JNICALL
|
JNIEXPORT void JNICALL
|
||||||
JVM_AddModulePackage(JNIEnv* env, jobject module, jstring package);
|
JVM_AddModulePackage(JNIEnv* env, jobject module, jstring package);
|
||||||
|
|
||||||
|
@ -863,14 +863,12 @@ Agent_OnUnload_L(JavaVM *vm)</example>
|
|||||||
</intro>
|
</intro>
|
||||||
|
|
||||||
<intro id="bcimodules" label="Bytecode Instrumentation of code in modules">
|
<intro id="bcimodules" label="Bytecode Instrumentation of code in modules">
|
||||||
Agents that instrument code in named modules may need to arrange for those
|
Agents can use the functions <functionlink id="AddModuleReads"/>,
|
||||||
modules to read other modules. If code is instrumented to invoke a method
|
<functionlink id="AddModuleExports"/>, <functionlink id="AddModuleOpens"/>,
|
||||||
in a support class in another module, then the module of the instrumented
|
<functionlink id="AddModuleUses"/> and <functionlink id="AddModuleProvides"/>
|
||||||
code should read the module of the supporting class. Furthermore, the
|
to update a module to expand the set of modules that it reads, the set of
|
||||||
supporting class will only be accessible to the instrumented code if
|
packages that it exports or opens to other modules, or the services that it
|
||||||
it is <code>public</code> and in a package that is exported by its module.
|
uses and provides.
|
||||||
Agents can use the JNI functions <code>CanReadModule</code> and
|
|
||||||
<code>AddModuleReads</code> to test and update a module to read another.
|
|
||||||
<p/>
|
<p/>
|
||||||
As an aid to agents that deploy supporting classes on the search path of
|
As an aid to agents that deploy supporting classes on the search path of
|
||||||
the bootstrap class loader, or the search path of the class loader that
|
the bootstrap class loader, or the search path of the class loader that
|
||||||
@ -6561,6 +6559,227 @@ class C2 extends C1 implements I2 {
|
|||||||
</error>
|
</error>
|
||||||
</errors>
|
</errors>
|
||||||
</function>
|
</function>
|
||||||
|
|
||||||
|
<function id="AddModuleReads" num="94" since="9">
|
||||||
|
<synopsis>Add Module Reads</synopsis>
|
||||||
|
<description>
|
||||||
|
Update a module to read another module. This function is a no-op
|
||||||
|
when <paramlink id="module"></paramlink> is an unnamed module.
|
||||||
|
This function facilitates the instrumentation of code
|
||||||
|
in named modules where that instrumentation requires
|
||||||
|
expanding the set of modules that a module reads.
|
||||||
|
</description>
|
||||||
|
<origin>new</origin>
|
||||||
|
<capabilities>
|
||||||
|
</capabilities>
|
||||||
|
<parameters>
|
||||||
|
<param id="module">
|
||||||
|
<ptrtype><jobject/></ptrtype>
|
||||||
|
<description>
|
||||||
|
The module to update.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
<param id="to_module">
|
||||||
|
<ptrtype><jobject/></ptrtype>
|
||||||
|
<description>
|
||||||
|
The additional module to read.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
</parameters>
|
||||||
|
<errors>
|
||||||
|
<error id="JVMTI_ERROR_INVALID_MODULE">
|
||||||
|
If <paramlink id="module"></paramlink> is not a module object.
|
||||||
|
</error>
|
||||||
|
<error id="JVMTI_ERROR_INVALID_MODULE">
|
||||||
|
If <paramlink id="to_module"></paramlink> is not a module object.
|
||||||
|
</error>
|
||||||
|
</errors>
|
||||||
|
</function>
|
||||||
|
|
||||||
|
<function id="AddModuleExports" num="95" since="9">
|
||||||
|
<synopsis>Add Module Exports</synopsis>
|
||||||
|
<description>
|
||||||
|
Update a module to export a package to another module.
|
||||||
|
This function is a no-op when <paramlink id="module"></paramlink>
|
||||||
|
is an unnamed module or an open module.
|
||||||
|
This function facilitates the instrumentation of code
|
||||||
|
in named modules where that instrumentation requires
|
||||||
|
expanding the set of packages that a module exports.
|
||||||
|
</description>
|
||||||
|
<origin>new</origin>
|
||||||
|
<capabilities>
|
||||||
|
</capabilities>
|
||||||
|
<parameters>
|
||||||
|
<param id="module">
|
||||||
|
<ptrtype><jobject/></ptrtype>
|
||||||
|
<description>
|
||||||
|
The module to update.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
<param id="pkg_name">
|
||||||
|
<inbuf><char/></inbuf>
|
||||||
|
<description>
|
||||||
|
The exported package name.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
<param id="to_module">
|
||||||
|
<ptrtype><jobject/></ptrtype>
|
||||||
|
<description>
|
||||||
|
The module the package is exported to.
|
||||||
|
If the <code>to_module</code> is not a subclass of
|
||||||
|
<code>java.lang.reflect.Module</code> this function returns
|
||||||
|
<errorlink id="JVMTI_ERROR_INVALID_MODULE"></errorlink>.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
</parameters>
|
||||||
|
<errors>
|
||||||
|
<error id="JVMTI_ERROR_INVALID_MODULE">
|
||||||
|
If <paramlink id="module"></paramlink> is not a module object.
|
||||||
|
</error>
|
||||||
|
<error id="JVMTI_ERROR_INVALID_MODULE">
|
||||||
|
If <paramlink id="to_modules"></paramlink> is not a module object.
|
||||||
|
</error>
|
||||||
|
<error id="JVMTI_ERROR_ILLEGAL_ARGUMENT">
|
||||||
|
If the package <paramlink id="pkg_name"></paramlink>
|
||||||
|
does not belong to the module.
|
||||||
|
</error>
|
||||||
|
</errors>
|
||||||
|
</function>
|
||||||
|
|
||||||
|
<function id="AddModuleOpens" num="96" since="9">
|
||||||
|
<synopsis>Add Module Opens</synopsis>
|
||||||
|
<description>
|
||||||
|
Update a module to open a package to another module.
|
||||||
|
This function is a no-op when <paramlink id="module"></paramlink>
|
||||||
|
is an unnamed module or an open module.
|
||||||
|
This function facilitates the instrumentation of code
|
||||||
|
in modules where that instrumentation requires
|
||||||
|
expanding the set of packages that a module opens to
|
||||||
|
other modules.
|
||||||
|
</description>
|
||||||
|
<origin>new</origin>
|
||||||
|
<capabilities>
|
||||||
|
</capabilities>
|
||||||
|
<parameters>
|
||||||
|
<param id="module">
|
||||||
|
<ptrtype><jobject/></ptrtype>
|
||||||
|
<description>
|
||||||
|
The module to update.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
<param id="pkg_name">
|
||||||
|
<inbuf><char/></inbuf>
|
||||||
|
<description>
|
||||||
|
The package name of the package to open.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
<param id="to_module">
|
||||||
|
<ptrtype><jobject/></ptrtype>
|
||||||
|
<description>
|
||||||
|
The module with the package to open.
|
||||||
|
If the <code>to_module</code> is not a subclass of
|
||||||
|
<code>java.lang.reflect.Module</code> this function returns
|
||||||
|
<errorlink id="JVMTI_ERROR_INVALID_MODULE"></errorlink>.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
</parameters>
|
||||||
|
<errors>
|
||||||
|
<error id="JVMTI_ERROR_INVALID_MODULE">
|
||||||
|
If <paramlink id="module"></paramlink> is not a module object.
|
||||||
|
</error>
|
||||||
|
<error id="JVMTI_ERROR_INVALID_MODULE">
|
||||||
|
If <paramlink id="to_modules"></paramlink> is not a module object.
|
||||||
|
</error>
|
||||||
|
<error id="JVMTI_ERROR_ILLEGAL_ARGUMENT">
|
||||||
|
If the package <paramlink id="pkg_name"></paramlink>
|
||||||
|
does not belong to the module.
|
||||||
|
</error>
|
||||||
|
</errors>
|
||||||
|
</function>
|
||||||
|
|
||||||
|
<function id="AddModuleUses" num="97" since="9">
|
||||||
|
<synopsis>Add Module Uses</synopsis>
|
||||||
|
<description>
|
||||||
|
Updates a module to add a service to the set of services that
|
||||||
|
a module uses. This function is a no-op when the module
|
||||||
|
is an unnamed module.
|
||||||
|
This function facilitates the instrumentation of code
|
||||||
|
in named modules where that instrumentation requires
|
||||||
|
expanding the set of services that a module is using.
|
||||||
|
</description>
|
||||||
|
<origin>new</origin>
|
||||||
|
<capabilities>
|
||||||
|
</capabilities>
|
||||||
|
<parameters>
|
||||||
|
<param id="module">
|
||||||
|
<ptrtype><jobject/></ptrtype>
|
||||||
|
<description>
|
||||||
|
The module to update.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
<param id="service">
|
||||||
|
<ptrtype><jclass/></ptrtype>
|
||||||
|
<description>
|
||||||
|
The service to use.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
</parameters>
|
||||||
|
<errors>
|
||||||
|
<error id="JVMTI_ERROR_INVALID_MODULE">
|
||||||
|
If <paramlink id="module"></paramlink> is not a module object.
|
||||||
|
</error>
|
||||||
|
<error id="JVMTI_ERROR_INVALID_CLASS">
|
||||||
|
If <paramlink id="service"></paramlink> is not a class object.
|
||||||
|
</error>
|
||||||
|
</errors>
|
||||||
|
</function>
|
||||||
|
|
||||||
|
<function id="AddModuleProvides" num="98" since="9">
|
||||||
|
<synopsis>Add Module Provides</synopsis>
|
||||||
|
<description>
|
||||||
|
Updates a module to add a service to the set of services that
|
||||||
|
a module provides. This function is a no-op when the module
|
||||||
|
is an unnamed module.
|
||||||
|
This function facilitates the instrumentation of code
|
||||||
|
in named modules where that instrumentation requires
|
||||||
|
changes to the services that are provided.
|
||||||
|
</description>
|
||||||
|
<origin>new</origin>
|
||||||
|
<capabilities>
|
||||||
|
</capabilities>
|
||||||
|
<parameters>
|
||||||
|
<param id="module">
|
||||||
|
<ptrtype><jobject/></ptrtype>
|
||||||
|
<description>
|
||||||
|
The module to update.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
<param id="service">
|
||||||
|
<ptrtype><jclass/></ptrtype>
|
||||||
|
<description>
|
||||||
|
The service to provide.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
<param id="impl_class">
|
||||||
|
<ptrtype><jclass/></ptrtype>
|
||||||
|
<description>
|
||||||
|
The implementation class for the provided service.
|
||||||
|
</description>
|
||||||
|
</param>
|
||||||
|
</parameters>
|
||||||
|
<errors>
|
||||||
|
<error id="JVMTI_ERROR_INVALID_MODULE">
|
||||||
|
If <paramlink id="module"></paramlink> is not a module object.
|
||||||
|
</error>
|
||||||
|
<error id="JVMTI_ERROR_INVALID_CLASS">
|
||||||
|
If <paramlink id="service"></paramlink> is not a class object.
|
||||||
|
</error>
|
||||||
|
<error id="JVMTI_ERROR_INVALID_CLASS">
|
||||||
|
If <paramlink id="impl_class"></paramlink> is not a class object.
|
||||||
|
</error>
|
||||||
|
</errors>
|
||||||
|
</function>
|
||||||
|
|
||||||
</category>
|
</category>
|
||||||
|
|
||||||
<category id="class" label="Class">
|
<category id="class" label="Class">
|
||||||
@ -11371,6 +11590,9 @@ myInit() {
|
|||||||
<errorid id="JVMTI_ERROR_INVALID_FIELDID" num="25">
|
<errorid id="JVMTI_ERROR_INVALID_FIELDID" num="25">
|
||||||
Invalid field.
|
Invalid field.
|
||||||
</errorid>
|
</errorid>
|
||||||
|
<errorid id="JVMTI_ERROR_INVALID_MODULE" num="26">
|
||||||
|
Invalid module.
|
||||||
|
</errorid>
|
||||||
<errorid id="JVMTI_ERROR_INVALID_METHODID" num="23">
|
<errorid id="JVMTI_ERROR_INVALID_METHODID" num="23">
|
||||||
Invalid method.
|
Invalid method.
|
||||||
</errorid>
|
</errorid>
|
||||||
@ -14492,17 +14714,17 @@ typedef void (JNICALL *jvmtiEventVMInit)
|
|||||||
<change date="19 June 2013" version="1.2.3">
|
<change date="19 June 2013" version="1.2.3">
|
||||||
Added support for statically linked agents.
|
Added support for statically linked agents.
|
||||||
</change>
|
</change>
|
||||||
<change date="5 July 2016" version="9.0.0">
|
<change date="13 October 2016" version="9.0.0">
|
||||||
Support for modules:
|
Support for modules:
|
||||||
- The majorversion is 9 now
|
- The majorversion is 9 now
|
||||||
- The ClassFileLoadHook events are not sent during the primordial phase anymore.
|
- The ClassFileLoadHook events are not sent during the primordial phase anymore.
|
||||||
- Add new function GetAllModules
|
|
||||||
- Add new capability can_generate_early_vmstart
|
|
||||||
- Allow CompiledMethodLoad events at start phase
|
- Allow CompiledMethodLoad events at start phase
|
||||||
- Add new capability can_generate_early_class_hook_events
|
- Add new capabilities:
|
||||||
- Add new function GetNamedModule
|
- can_generate_early_vmstart
|
||||||
</change>
|
- can_generate_early_class_hook_events
|
||||||
<change date="16 August 2016" version="9.0.0">
|
- Add new functions:
|
||||||
|
- GetAllModules
|
||||||
|
- AddModuleReads, AddModuleExports, AddModuleOpens, AddModuleUses, AddModuleProvides
|
||||||
Clarified can_redefine_any_classes, can_retransform_any_classes and IsModifiableClass API to
|
Clarified can_redefine_any_classes, can_retransform_any_classes and IsModifiableClass API to
|
||||||
disallow some implementation defined classes.
|
disallow some implementation defined classes.
|
||||||
</change>
|
</change>
|
||||||
|
@ -227,6 +227,119 @@ JvmtiEnv::GetNamedModule(jobject class_loader, const char* package_name, jobject
|
|||||||
} /* end GetNamedModule */
|
} /* end GetNamedModule */
|
||||||
|
|
||||||
|
|
||||||
|
// module - pre-checked for NULL
|
||||||
|
// to_module - pre-checked for NULL
|
||||||
|
jvmtiError
|
||||||
|
JvmtiEnv::AddModuleReads(jobject module, jobject to_module) {
|
||||||
|
JavaThread* THREAD = JavaThread::current();
|
||||||
|
|
||||||
|
// check module
|
||||||
|
Handle h_module(THREAD, JNIHandles::resolve(module));
|
||||||
|
if (!java_lang_reflect_Module::is_instance(h_module())) {
|
||||||
|
return JVMTI_ERROR_INVALID_MODULE;
|
||||||
|
}
|
||||||
|
// check to_module
|
||||||
|
Handle h_to_module(THREAD, JNIHandles::resolve(to_module));
|
||||||
|
if (!java_lang_reflect_Module::is_instance(h_to_module())) {
|
||||||
|
return JVMTI_ERROR_INVALID_MODULE;
|
||||||
|
}
|
||||||
|
return JvmtiExport::add_module_reads(h_module, h_to_module, THREAD);
|
||||||
|
} /* end AddModuleReads */
|
||||||
|
|
||||||
|
|
||||||
|
// module - pre-checked for NULL
|
||||||
|
// pkg_name - pre-checked for NULL
|
||||||
|
// to_module - pre-checked for NULL
|
||||||
|
jvmtiError
|
||||||
|
JvmtiEnv::AddModuleExports(jobject module, const char* pkg_name, jobject to_module) {
|
||||||
|
JavaThread* THREAD = JavaThread::current();
|
||||||
|
Handle h_pkg = java_lang_String::create_from_str(pkg_name, THREAD);
|
||||||
|
|
||||||
|
// check module
|
||||||
|
Handle h_module(THREAD, JNIHandles::resolve(module));
|
||||||
|
if (!java_lang_reflect_Module::is_instance(h_module())) {
|
||||||
|
return JVMTI_ERROR_INVALID_MODULE;
|
||||||
|
}
|
||||||
|
// check to_module
|
||||||
|
Handle h_to_module(THREAD, JNIHandles::resolve(to_module));
|
||||||
|
if (!java_lang_reflect_Module::is_instance(h_to_module())) {
|
||||||
|
return JVMTI_ERROR_INVALID_MODULE;
|
||||||
|
}
|
||||||
|
return JvmtiExport::add_module_exports(h_module, h_pkg, h_to_module, THREAD);
|
||||||
|
} /* end AddModuleExports */
|
||||||
|
|
||||||
|
|
||||||
|
// module - pre-checked for NULL
|
||||||
|
// pkg_name - pre-checked for NULL
|
||||||
|
// to_module - pre-checked for NULL
|
||||||
|
jvmtiError
|
||||||
|
JvmtiEnv::AddModuleOpens(jobject module, const char* pkg_name, jobject to_module) {
|
||||||
|
JavaThread* THREAD = JavaThread::current();
|
||||||
|
Handle h_pkg = java_lang_String::create_from_str(pkg_name, THREAD);
|
||||||
|
|
||||||
|
// check module
|
||||||
|
Handle h_module(THREAD, JNIHandles::resolve(module));
|
||||||
|
if (!java_lang_reflect_Module::is_instance(h_module())) {
|
||||||
|
return JVMTI_ERROR_INVALID_MODULE;
|
||||||
|
}
|
||||||
|
// check to_module
|
||||||
|
Handle h_to_module(THREAD, JNIHandles::resolve(to_module));
|
||||||
|
if (!java_lang_reflect_Module::is_instance(h_to_module())) {
|
||||||
|
return JVMTI_ERROR_INVALID_MODULE;
|
||||||
|
}
|
||||||
|
return JvmtiExport::add_module_opens(h_module, h_pkg, h_to_module, THREAD);
|
||||||
|
} /* end AddModuleOpens */
|
||||||
|
|
||||||
|
|
||||||
|
// module - pre-checked for NULL
|
||||||
|
// service - pre-checked for NULL
|
||||||
|
jvmtiError
|
||||||
|
JvmtiEnv::AddModuleUses(jobject module, jclass service) {
|
||||||
|
JavaThread* THREAD = JavaThread::current();
|
||||||
|
|
||||||
|
// check module
|
||||||
|
Handle h_module(THREAD, JNIHandles::resolve(module));
|
||||||
|
if (!java_lang_reflect_Module::is_instance(h_module())) {
|
||||||
|
return JVMTI_ERROR_INVALID_MODULE;
|
||||||
|
}
|
||||||
|
// check service
|
||||||
|
Handle h_service(THREAD, JNIHandles::resolve_external_guard(service));
|
||||||
|
if (!java_lang_Class::is_instance(h_service()) ||
|
||||||
|
java_lang_Class::is_primitive(h_service())) {
|
||||||
|
return JVMTI_ERROR_INVALID_CLASS;
|
||||||
|
}
|
||||||
|
return JvmtiExport::add_module_uses(h_module, h_service, THREAD);
|
||||||
|
} /* end AddModuleUses */
|
||||||
|
|
||||||
|
|
||||||
|
// module - pre-checked for NULL
|
||||||
|
// service - pre-checked for NULL
|
||||||
|
// impl_class - pre-checked for NULL
|
||||||
|
jvmtiError
|
||||||
|
JvmtiEnv::AddModuleProvides(jobject module, jclass service, jclass impl_class) {
|
||||||
|
JavaThread* THREAD = JavaThread::current();
|
||||||
|
|
||||||
|
// check module
|
||||||
|
Handle h_module(THREAD, JNIHandles::resolve(module));
|
||||||
|
if (!java_lang_reflect_Module::is_instance(h_module())) {
|
||||||
|
return JVMTI_ERROR_INVALID_MODULE;
|
||||||
|
}
|
||||||
|
// check service
|
||||||
|
Handle h_service(THREAD, JNIHandles::resolve_external_guard(service));
|
||||||
|
if (!java_lang_Class::is_instance(h_service()) ||
|
||||||
|
java_lang_Class::is_primitive(h_service())) {
|
||||||
|
return JVMTI_ERROR_INVALID_CLASS;
|
||||||
|
}
|
||||||
|
// check impl_class
|
||||||
|
Handle h_impl_class(THREAD, JNIHandles::resolve_external_guard(impl_class));
|
||||||
|
if (!java_lang_Class::is_instance(h_impl_class()) ||
|
||||||
|
java_lang_Class::is_primitive(h_impl_class())) {
|
||||||
|
return JVMTI_ERROR_INVALID_CLASS;
|
||||||
|
}
|
||||||
|
return JvmtiExport::add_module_provides(h_module, h_service, h_impl_class, THREAD);
|
||||||
|
} /* end AddModuleProvides */
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Class functions
|
// Class functions
|
||||||
//
|
//
|
||||||
|
@ -434,6 +434,165 @@ JvmtiExport::add_default_read_edges(Handle h_module, TRAPS) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jvmtiError
|
||||||
|
JvmtiExport::add_module_reads(Handle module, Handle to_module, TRAPS) {
|
||||||
|
if (!Universe::is_module_initialized()) {
|
||||||
|
return JVMTI_ERROR_NONE; // extra safety
|
||||||
|
}
|
||||||
|
assert(!module.is_null(), "module should always be set");
|
||||||
|
assert(!to_module.is_null(), "to_module should always be set");
|
||||||
|
|
||||||
|
// Invoke the addReads method
|
||||||
|
JavaValue result(T_VOID);
|
||||||
|
JavaCalls::call_static(&result,
|
||||||
|
SystemDictionary::module_Modules_klass(),
|
||||||
|
vmSymbols::addReads_name(),
|
||||||
|
vmSymbols::addReads_signature(),
|
||||||
|
module,
|
||||||
|
to_module,
|
||||||
|
THREAD);
|
||||||
|
|
||||||
|
if (HAS_PENDING_EXCEPTION) {
|
||||||
|
LogTarget(Trace, jvmti) log;
|
||||||
|
LogStreamCHeap log_stream(log);
|
||||||
|
java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
|
||||||
|
log_stream.cr();
|
||||||
|
CLEAR_PENDING_EXCEPTION;
|
||||||
|
return JVMTI_ERROR_INTERNAL;
|
||||||
|
}
|
||||||
|
return JVMTI_ERROR_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
jvmtiError
|
||||||
|
JvmtiExport::add_module_exports(Handle module, Handle pkg_name, Handle to_module, TRAPS) {
|
||||||
|
if (!Universe::is_module_initialized()) {
|
||||||
|
return JVMTI_ERROR_NONE; // extra safety
|
||||||
|
}
|
||||||
|
assert(!module.is_null(), "module should always be set");
|
||||||
|
assert(!to_module.is_null(), "to_module should always be set");
|
||||||
|
assert(!pkg_name.is_null(), "pkg_name should always be set");
|
||||||
|
|
||||||
|
// Invoke the addExports method
|
||||||
|
JavaValue result(T_VOID);
|
||||||
|
JavaCalls::call_static(&result,
|
||||||
|
SystemDictionary::module_Modules_klass(),
|
||||||
|
vmSymbols::addExports_name(),
|
||||||
|
vmSymbols::addExports_signature(),
|
||||||
|
module,
|
||||||
|
pkg_name,
|
||||||
|
to_module,
|
||||||
|
THREAD);
|
||||||
|
|
||||||
|
if (HAS_PENDING_EXCEPTION) {
|
||||||
|
Symbol* ex_name = PENDING_EXCEPTION->klass()->name();
|
||||||
|
LogTarget(Trace, jvmti) log;
|
||||||
|
LogStreamCHeap log_stream(log);
|
||||||
|
java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
|
||||||
|
log_stream.cr();
|
||||||
|
CLEAR_PENDING_EXCEPTION;
|
||||||
|
if (ex_name == vmSymbols::java_lang_IllegalArgumentException()) {
|
||||||
|
return JVMTI_ERROR_ILLEGAL_ARGUMENT;
|
||||||
|
}
|
||||||
|
return JVMTI_ERROR_INTERNAL;
|
||||||
|
}
|
||||||
|
return JVMTI_ERROR_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
jvmtiError
|
||||||
|
JvmtiExport::add_module_opens(Handle module, Handle pkg_name, Handle to_module, TRAPS) {
|
||||||
|
if (!Universe::is_module_initialized()) {
|
||||||
|
return JVMTI_ERROR_NONE; // extra safety
|
||||||
|
}
|
||||||
|
assert(!module.is_null(), "module should always be set");
|
||||||
|
assert(!to_module.is_null(), "to_module should always be set");
|
||||||
|
assert(!pkg_name.is_null(), "pkg_name should always be set");
|
||||||
|
|
||||||
|
// Invoke the addOpens method
|
||||||
|
JavaValue result(T_VOID);
|
||||||
|
JavaCalls::call_static(&result,
|
||||||
|
SystemDictionary::module_Modules_klass(),
|
||||||
|
vmSymbols::addOpens_name(),
|
||||||
|
vmSymbols::addExports_signature(),
|
||||||
|
module,
|
||||||
|
pkg_name,
|
||||||
|
to_module,
|
||||||
|
THREAD);
|
||||||
|
|
||||||
|
if (HAS_PENDING_EXCEPTION) {
|
||||||
|
Symbol* ex_name = PENDING_EXCEPTION->klass()->name();
|
||||||
|
LogTarget(Trace, jvmti) log;
|
||||||
|
LogStreamCHeap log_stream(log);
|
||||||
|
java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
|
||||||
|
log_stream.cr();
|
||||||
|
CLEAR_PENDING_EXCEPTION;
|
||||||
|
if (ex_name == vmSymbols::java_lang_IllegalArgumentException()) {
|
||||||
|
return JVMTI_ERROR_ILLEGAL_ARGUMENT;
|
||||||
|
}
|
||||||
|
return JVMTI_ERROR_INTERNAL;
|
||||||
|
}
|
||||||
|
return JVMTI_ERROR_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
jvmtiError
|
||||||
|
JvmtiExport::add_module_uses(Handle module, Handle service, TRAPS) {
|
||||||
|
if (!Universe::is_module_initialized()) {
|
||||||
|
return JVMTI_ERROR_NONE; // extra safety
|
||||||
|
}
|
||||||
|
assert(!module.is_null(), "module should always be set");
|
||||||
|
assert(!service.is_null(), "service should always be set");
|
||||||
|
|
||||||
|
// Invoke the addUses method
|
||||||
|
JavaValue result(T_VOID);
|
||||||
|
JavaCalls::call_static(&result,
|
||||||
|
SystemDictionary::module_Modules_klass(),
|
||||||
|
vmSymbols::addUses_name(),
|
||||||
|
vmSymbols::addUses_signature(),
|
||||||
|
module,
|
||||||
|
service,
|
||||||
|
THREAD);
|
||||||
|
|
||||||
|
if (HAS_PENDING_EXCEPTION) {
|
||||||
|
LogTarget(Trace, jvmti) log;
|
||||||
|
LogStreamCHeap log_stream(log);
|
||||||
|
java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
|
||||||
|
log_stream.cr();
|
||||||
|
CLEAR_PENDING_EXCEPTION;
|
||||||
|
return JVMTI_ERROR_INTERNAL;
|
||||||
|
}
|
||||||
|
return JVMTI_ERROR_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
jvmtiError
|
||||||
|
JvmtiExport::add_module_provides(Handle module, Handle service, Handle impl_class, TRAPS) {
|
||||||
|
if (!Universe::is_module_initialized()) {
|
||||||
|
return JVMTI_ERROR_NONE; // extra safety
|
||||||
|
}
|
||||||
|
assert(!module.is_null(), "module should always be set");
|
||||||
|
assert(!service.is_null(), "service should always be set");
|
||||||
|
assert(!impl_class.is_null(), "impl_class should always be set");
|
||||||
|
|
||||||
|
// Invoke the addProvides method
|
||||||
|
JavaValue result(T_VOID);
|
||||||
|
JavaCalls::call_static(&result,
|
||||||
|
SystemDictionary::module_Modules_klass(),
|
||||||
|
vmSymbols::addProvides_name(),
|
||||||
|
vmSymbols::addProvides_signature(),
|
||||||
|
module,
|
||||||
|
service,
|
||||||
|
impl_class,
|
||||||
|
THREAD);
|
||||||
|
|
||||||
|
if (HAS_PENDING_EXCEPTION) {
|
||||||
|
LogTarget(Trace, jvmti) log;
|
||||||
|
LogStreamCHeap log_stream(log);
|
||||||
|
java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
|
||||||
|
log_stream.cr();
|
||||||
|
CLEAR_PENDING_EXCEPTION;
|
||||||
|
return JVMTI_ERROR_INTERNAL;
|
||||||
|
}
|
||||||
|
return JVMTI_ERROR_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
JvmtiExport::decode_version_values(jint version, int * major, int * minor,
|
JvmtiExport::decode_version_values(jint version, int * major, int * minor,
|
||||||
int * micro) {
|
int * micro) {
|
||||||
|
@ -218,6 +218,21 @@ class JvmtiExport : public AllStatic {
|
|||||||
// Add read edges to the unnamed modules of the bootstrap and app class loaders
|
// Add read edges to the unnamed modules of the bootstrap and app class loaders
|
||||||
static void add_default_read_edges(Handle h_module, TRAPS) NOT_JVMTI_RETURN;
|
static void add_default_read_edges(Handle h_module, TRAPS) NOT_JVMTI_RETURN;
|
||||||
|
|
||||||
|
// Add a read edge to the module
|
||||||
|
static jvmtiError add_module_reads(Handle module, Handle to_module, TRAPS);
|
||||||
|
|
||||||
|
// Updates a module to export a package
|
||||||
|
static jvmtiError add_module_exports(Handle module, Handle pkg_name, Handle to_module, TRAPS);
|
||||||
|
|
||||||
|
// Updates a module to open a package
|
||||||
|
static jvmtiError add_module_opens(Handle module, Handle pkg_name, Handle to_module, TRAPS);
|
||||||
|
|
||||||
|
// Add a used service to the module
|
||||||
|
static jvmtiError add_module_uses(Handle module, Handle service, TRAPS);
|
||||||
|
|
||||||
|
// Add a service provider to the module
|
||||||
|
static jvmtiError add_module_provides(Handle module, Handle service, Handle impl_class, TRAPS);
|
||||||
|
|
||||||
// let JVMTI know that the JVM_OnLoad code is running
|
// let JVMTI know that the JVM_OnLoad code is running
|
||||||
static void enter_onload_phase() NOT_JVMTI_RETURN;
|
static void enter_onload_phase() NOT_JVMTI_RETURN;
|
||||||
|
|
||||||
|
@ -1415,14 +1415,6 @@ WB_ENTRY(void, WB_AddReadsModule(JNIEnv* env, jobject o, jobject from_module, jo
|
|||||||
Modules::add_reads_module(from_module, source_module, CHECK);
|
Modules::add_reads_module(from_module, source_module, CHECK);
|
||||||
WB_END
|
WB_END
|
||||||
|
|
||||||
WB_ENTRY(jboolean, WB_CanReadModule(JNIEnv* env, jobject o, jobject asking_module, jobject source_module))
|
|
||||||
return Modules::can_read_module(asking_module, source_module, THREAD);
|
|
||||||
WB_END
|
|
||||||
|
|
||||||
WB_ENTRY(jboolean, WB_IsExportedToModule(JNIEnv* env, jobject o, jobject from_module, jstring package, jobject to_module))
|
|
||||||
return Modules::is_exported_to_module(from_module, package, to_module, THREAD);
|
|
||||||
WB_END
|
|
||||||
|
|
||||||
WB_ENTRY(void, WB_AddModulePackage(JNIEnv* env, jobject o, jclass module, jstring package))
|
WB_ENTRY(void, WB_AddModulePackage(JNIEnv* env, jobject o, jclass module, jstring package))
|
||||||
Modules::add_module_package(module, package, CHECK);
|
Modules::add_module_package(module, package, CHECK);
|
||||||
WB_END
|
WB_END
|
||||||
@ -1866,10 +1858,6 @@ static JNINativeMethod methods[] = {
|
|||||||
(void*)&WB_AddModuleExports },
|
(void*)&WB_AddModuleExports },
|
||||||
{CC"AddReadsModule", CC"(Ljava/lang/Object;Ljava/lang/Object;)V",
|
{CC"AddReadsModule", CC"(Ljava/lang/Object;Ljava/lang/Object;)V",
|
||||||
(void*)&WB_AddReadsModule },
|
(void*)&WB_AddReadsModule },
|
||||||
{CC"CanReadModule", CC"(Ljava/lang/Object;Ljava/lang/Object;)Z",
|
|
||||||
(void*)&WB_CanReadModule },
|
|
||||||
{CC"IsExportedToModule", CC"(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Z",
|
|
||||||
(void*)&WB_IsExportedToModule },
|
|
||||||
{CC"AddModulePackage", CC"(Ljava/lang/Object;Ljava/lang/String;)V",
|
{CC"AddModulePackage", CC"(Ljava/lang/Object;Ljava/lang/String;)V",
|
||||||
(void*)&WB_AddModulePackage },
|
(void*)&WB_AddModulePackage },
|
||||||
{CC"GetModuleByPackageName", CC"(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;",
|
{CC"GetModuleByPackageName", CC"(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;",
|
||||||
|
@ -170,6 +170,8 @@ bool needs_module_property_warning = false;
|
|||||||
#define ADDEXPORTS_LEN 10
|
#define ADDEXPORTS_LEN 10
|
||||||
#define ADDREADS "addreads"
|
#define ADDREADS "addreads"
|
||||||
#define ADDREADS_LEN 8
|
#define ADDREADS_LEN 8
|
||||||
|
#define ADDOPENS "addopens"
|
||||||
|
#define ADDOPENS_LEN 8
|
||||||
#define PATCH "patch"
|
#define PATCH "patch"
|
||||||
#define PATCH_LEN 5
|
#define PATCH_LEN 5
|
||||||
#define ADDMODS "addmods"
|
#define ADDMODS "addmods"
|
||||||
@ -196,6 +198,7 @@ bool Arguments::is_internal_module_property(const char* property) {
|
|||||||
const char* property_suffix = property + MODULE_PROPERTY_PREFIX_LEN;
|
const char* property_suffix = property + MODULE_PROPERTY_PREFIX_LEN;
|
||||||
if (matches_property_suffix(property_suffix, ADDEXPORTS, ADDEXPORTS_LEN) ||
|
if (matches_property_suffix(property_suffix, ADDEXPORTS, ADDEXPORTS_LEN) ||
|
||||||
matches_property_suffix(property_suffix, ADDREADS, ADDREADS_LEN) ||
|
matches_property_suffix(property_suffix, ADDREADS, ADDREADS_LEN) ||
|
||||||
|
matches_property_suffix(property_suffix, ADDOPENS, ADDOPENS_LEN) ||
|
||||||
matches_property_suffix(property_suffix, PATCH, PATCH_LEN) ||
|
matches_property_suffix(property_suffix, PATCH, PATCH_LEN) ||
|
||||||
matches_property_suffix(property_suffix, ADDMODS, ADDMODS_LEN) ||
|
matches_property_suffix(property_suffix, ADDMODS, ADDMODS_LEN) ||
|
||||||
matches_property_suffix(property_suffix, LIMITMODS, LIMITMODS_LEN) ||
|
matches_property_suffix(property_suffix, LIMITMODS, LIMITMODS_LEN) ||
|
||||||
@ -2555,6 +2558,7 @@ bool Arguments::parse_uintx(const char* value,
|
|||||||
|
|
||||||
unsigned int addreads_count = 0;
|
unsigned int addreads_count = 0;
|
||||||
unsigned int addexports_count = 0;
|
unsigned int addexports_count = 0;
|
||||||
|
unsigned int addopens_count = 0;
|
||||||
unsigned int addmods_count = 0;
|
unsigned int addmods_count = 0;
|
||||||
unsigned int patch_mod_count = 0;
|
unsigned int patch_mod_count = 0;
|
||||||
|
|
||||||
@ -2809,6 +2813,10 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, bool* patch_m
|
|||||||
if (!create_numbered_property("jdk.module.addexports", tail, addexports_count++)) {
|
if (!create_numbered_property("jdk.module.addexports", tail, addexports_count++)) {
|
||||||
return JNI_ENOMEM;
|
return JNI_ENOMEM;
|
||||||
}
|
}
|
||||||
|
} else if (match_option(option, "--add-opens=", &tail)) {
|
||||||
|
if (!create_numbered_property("jdk.module.addopens", tail, addopens_count++)) {
|
||||||
|
return JNI_ENOMEM;
|
||||||
|
}
|
||||||
} else if (match_option(option, "--add-modules=", &tail)) {
|
} else if (match_option(option, "--add-modules=", &tail)) {
|
||||||
if (!create_numbered_property("jdk.module.addmods", tail, addmods_count++)) {
|
if (!create_numbered_property("jdk.module.addmods", tail, addmods_count++)) {
|
||||||
return JNI_ENOMEM;
|
return JNI_ENOMEM;
|
||||||
|
@ -285,6 +285,14 @@ void JavaCalls::call_static(JavaValue* result, KlassHandle klass, Symbol* name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void JavaCalls::call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, Handle arg3, TRAPS) {
|
||||||
|
JavaCallArguments args; // One oop argument
|
||||||
|
args.push_oop(arg1);
|
||||||
|
args.push_oop(arg2);
|
||||||
|
args.push_oop(arg3);
|
||||||
|
call_static(result, klass, name, signature, &args, CHECK);
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------------
|
// -------------------------------------------------
|
||||||
// Implementation of JavaCalls (low level)
|
// Implementation of JavaCalls (low level)
|
||||||
|
|
||||||
|
@ -210,6 +210,7 @@ class JavaCalls: AllStatic {
|
|||||||
static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS);
|
static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS);
|
||||||
static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS);
|
static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS);
|
||||||
static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS);
|
static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS);
|
||||||
|
static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, Handle arg3, TRAPS);
|
||||||
|
|
||||||
// Low-level interface
|
// Low-level interface
|
||||||
static void call(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS);
|
static void call(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS);
|
||||||
|
@ -47,8 +47,8 @@ requires.properties= \
|
|||||||
vm.gc.ConcMarkSweep \
|
vm.gc.ConcMarkSweep \
|
||||||
vm.debug
|
vm.debug
|
||||||
|
|
||||||
# Tests using jtreg 4.2 b03 features
|
# Tests using jtreg 4.2 b04 features
|
||||||
requiredVersion=4.2 b03
|
requiredVersion=4.2 b04
|
||||||
|
|
||||||
# Path to libraries in the topmost test directory. This is needed so @library
|
# Path to libraries in the topmost test directory. This is needed so @library
|
||||||
# does not need ../../ notation to reach them
|
# does not need ../../ notation to reach them
|
||||||
|
@ -25,7 +25,8 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 7190310
|
* @bug 7190310
|
||||||
* @summary Inlining WeakReference.get(), and hoisting $referent may lead to non-terminating loops
|
* @summary Inlining WeakReference.get(), and hoisting $referent may lead to non-terminating loops
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
|
* @modules java.base/java.lang.ref:open
|
||||||
*
|
*
|
||||||
* @run main/othervm -Xbatch compiler.c2.Test7190310_unsafe
|
* @run main/othervm -Xbatch compiler.c2.Test7190310_unsafe
|
||||||
*/
|
*/
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 8011901
|
* @bug 8011901
|
||||||
* @summary instruct xaddL_no_res shouldn't allow 64 bit constants.
|
* @summary instruct xaddL_no_res shouldn't allow 64 bit constants.
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
*
|
*
|
||||||
* @run main/othervm -XX:-BackgroundCompilation compiler.codegen.Test8011901
|
* @run main/othervm -XX:-BackgroundCompilation compiler.codegen.Test8011901
|
||||||
*/
|
*/
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 8038048
|
* @bug 8038048
|
||||||
* @summary assert(null_obj->escape_state() == PointsToNode::NoEscape,etc)
|
* @summary assert(null_obj->escape_state() == PointsToNode::NoEscape,etc)
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
*
|
*
|
||||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+DoEscapeAnalysis
|
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+DoEscapeAnalysis
|
||||||
* -XX:-TieredCompilation -Xbatch
|
* -XX:-TieredCompilation -Xbatch
|
||||||
|
@ -27,7 +27,8 @@
|
|||||||
* @bug 8130150 8131779 8139907
|
* @bug 8130150 8131779 8139907
|
||||||
* @summary Verify that the Montgomery multiply and square intrinsic works and correctly checks their arguments.
|
* @summary Verify that the Montgomery multiply and square intrinsic works and correctly checks their arguments.
|
||||||
* @requires vm.flavor == "server"
|
* @requires vm.flavor == "server"
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:open
|
||||||
|
* @modules java.base/java.math:open
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
*
|
*
|
||||||
* @build sun.hotspot.WhiteBox
|
* @build sun.hotspot.WhiteBox
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 8150465
|
* @bug 8150465
|
||||||
* @summary Unsafe methods to produce uninitialized arrays
|
* @summary Unsafe methods to produce uninitialized arrays
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
*
|
*
|
||||||
* @run main/othervm -ea -Diters=200 -Xint
|
* @run main/othervm -ea -Diters=200 -Xint
|
||||||
* compiler.intrinsics.unsafe.AllocateUninitializedArray
|
* compiler.intrinsics.unsafe.AllocateUninitializedArray
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 8136473
|
* @bug 8136473
|
||||||
* @summary Mismatched stores on same slice possible with Unsafe.Put*Unaligned methods
|
* @summary Mismatched stores on same slice possible with Unsafe.Put*Unaligned methods
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
*
|
*
|
||||||
* @run main/othervm -XX:-UseOnStackReplacement -XX:-BackgroundCompilation
|
* @run main/othervm -XX:-UseOnStackReplacement -XX:-BackgroundCompilation
|
||||||
* compiler.intrinsics.unsafe.TestUnsafeUnalignedMismatchedAccesses
|
* compiler.intrinsics.unsafe.TestUnsafeUnalignedMismatchedAccesses
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 6653795
|
* @bug 6653795
|
||||||
* @summary C2 intrinsic for Unsafe.getAddress performs pointer sign extension on 32-bit systems
|
* @summary C2 intrinsic for Unsafe.getAddress performs pointer sign extension on 32-bit systems
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
*
|
*
|
||||||
* @run main compiler.intrinsics.unsafe.UnsafeGetAddressTest
|
* @run main compiler.intrinsics.unsafe.UnsafeGetAddressTest
|
||||||
*/
|
*/
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 8143930
|
* @bug 8143930
|
||||||
* @summary C1 LinearScan asserts when compiling two back-to-back CompareAndSwapLongs
|
* @summary C1 LinearScan asserts when compiling two back-to-back CompareAndSwapLongs
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
*
|
*
|
||||||
* @run testng/othervm -Diters=200000 -XX:TieredStopAtLevel=1
|
* @run testng/othervm -Diters=200000 -XX:TieredStopAtLevel=1
|
||||||
* compiler.intrinsics.unsafe.UnsafeTwoCASLong
|
* compiler.intrinsics.unsafe.UnsafeTwoCASLong
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
* java.compiler
|
* java.compiler
|
||||||
* java.instrument
|
* java.instrument
|
||||||
* java.management
|
* java.management
|
||||||
|
* jdk.attach
|
||||||
*
|
*
|
||||||
* @run main/othervm compiler.jsr292.RedefineMethodUsedByMultipleMethodHandles
|
* @run main/othervm compiler.jsr292.RedefineMethodUsedByMultipleMethodHandles
|
||||||
*/
|
*/
|
||||||
@ -42,7 +43,6 @@ import jdk.internal.org.objectweb.asm.ClassWriter;
|
|||||||
import jdk.internal.org.objectweb.asm.MethodVisitor;
|
import jdk.internal.org.objectweb.asm.MethodVisitor;
|
||||||
import jdk.internal.org.objectweb.asm.Opcodes;
|
import jdk.internal.org.objectweb.asm.Opcodes;
|
||||||
|
|
||||||
import javax.tools.ToolProvider;
|
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@ -132,7 +132,7 @@ public class RedefineMethodUsedByMultipleMethodHandles {
|
|||||||
int p = vmName.indexOf('@');
|
int p = vmName.indexOf('@');
|
||||||
assert p != -1 : "VM name not in <pid>@<host> format: " + vmName;
|
assert p != -1 : "VM name not in <pid>@<host> format: " + vmName;
|
||||||
String pid = vmName.substring(0, p);
|
String pid = vmName.substring(0, p);
|
||||||
ClassLoader cl = ToolProvider.getSystemToolClassLoader();
|
ClassLoader cl = ClassLoader.getSystemClassLoader();
|
||||||
Class<?> c = Class.forName("com.sun.tools.attach.VirtualMachine", true, cl);
|
Class<?> c = Class.forName("com.sun.tools.attach.VirtualMachine", true, cl);
|
||||||
Method attach = c.getDeclaredMethod("attach", String.class);
|
Method attach = c.getDeclaredMethod("attach", String.class);
|
||||||
Method loadAgent = c.getDeclaredMethod("loadAgent", String.class);
|
Method loadAgent = c.getDeclaredMethod("loadAgent", String.class);
|
||||||
|
@ -27,8 +27,8 @@
|
|||||||
* @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
|
* @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
|
||||||
* @library / /test/lib
|
* @library / /test/lib
|
||||||
* @library ../common/patches
|
* @library ../common/patches
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @modules jdk.vm.ci/jdk.vm.ci.hotspot
|
* @modules jdk.vm.ci/jdk.vm.ci.hotspot:+open
|
||||||
*
|
*
|
||||||
* @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper
|
* @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper
|
||||||
* jdk.vm.ci/jdk.vm.ci.hotspot.PublicMetaspaceWrapperObject
|
* jdk.vm.ci/jdk.vm.ci.hotspot.PublicMetaspaceWrapperObject
|
||||||
|
@ -27,10 +27,10 @@
|
|||||||
* @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
|
* @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
|
||||||
* @library / /test/lib
|
* @library / /test/lib
|
||||||
* @library ../common/patches
|
* @library ../common/patches
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @modules java.base/jdk.internal.org.objectweb.asm
|
* @modules java.base/jdk.internal.org.objectweb.asm
|
||||||
* java.base/jdk.internal.org.objectweb.asm.tree
|
* java.base/jdk.internal.org.objectweb.asm.tree
|
||||||
* jdk.vm.ci/jdk.vm.ci.hotspot
|
* @modules jdk.vm.ci/jdk.vm.ci.hotspot:+open
|
||||||
* jdk.vm.ci/jdk.vm.ci.code
|
* jdk.vm.ci/jdk.vm.ci.code
|
||||||
* jdk.vm.ci/jdk.vm.ci.meta
|
* jdk.vm.ci/jdk.vm.ci.meta
|
||||||
* @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper
|
* @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper
|
||||||
|
@ -26,8 +26,8 @@
|
|||||||
* @bug 8136421
|
* @bug 8136421
|
||||||
* @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
|
* @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:open
|
||||||
* @modules jdk.vm.ci/jdk.vm.ci.hotspot
|
* @modules jdk.vm.ci/jdk.vm.ci.hotspot:open
|
||||||
* jdk.vm.ci/jdk.vm.ci.runtime
|
* jdk.vm.ci/jdk.vm.ci.runtime
|
||||||
* @run main/othervm -XX:+UnlockExperimentalVMOptions
|
* @run main/othervm -XX:+UnlockExperimentalVMOptions
|
||||||
* -Dcompiler.jvmci.compilerToVM.JVM_RegisterJVMCINatives.positive=true
|
* -Dcompiler.jvmci.compilerToVM.JVM_RegisterJVMCINatives.positive=true
|
||||||
|
@ -27,9 +27,10 @@
|
|||||||
* @bug 8161068
|
* @bug 8161068
|
||||||
* @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
|
* @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
|
||||||
* @library /test/lib /compiler/jvmci/jdk.vm.ci.hotspot.test/src
|
* @library /test/lib /compiler/jvmci/jdk.vm.ci.hotspot.test/src
|
||||||
|
* @modules java.base/java.lang.invoke:+open
|
||||||
* @modules jdk.vm.ci/jdk.vm.ci.meta
|
* @modules jdk.vm.ci/jdk.vm.ci.meta
|
||||||
* jdk.vm.ci/jdk.vm.ci.runtime
|
* jdk.vm.ci/jdk.vm.ci.runtime
|
||||||
* jdk.vm.ci/jdk.vm.ci.hotspot
|
* @modules jdk.vm.ci/jdk.vm.ci.hotspot:+open
|
||||||
* @run testng/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
|
* @run testng/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
|
||||||
* jdk.vm.ci.hotspot.test.MethodHandleAccessProviderTest
|
* jdk.vm.ci.hotspot.test.MethodHandleAccessProviderTest
|
||||||
*/
|
*/
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
* @library ../../../../../
|
* @library ../../../../../
|
||||||
* @modules jdk.vm.ci/jdk.vm.ci.meta
|
* @modules jdk.vm.ci/jdk.vm.ci.meta
|
||||||
* jdk.vm.ci/jdk.vm.ci.runtime
|
* jdk.vm.ci/jdk.vm.ci.runtime
|
||||||
|
* jdk.attach
|
||||||
* java.base/jdk.internal.misc
|
* java.base/jdk.internal.misc
|
||||||
* @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI jdk.vm.ci.runtime.test.RedefineClassTest
|
* @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI jdk.vm.ci.runtime.test.RedefineClassTest
|
||||||
*/
|
*/
|
||||||
@ -37,7 +38,6 @@ import jdk.vm.ci.meta.ResolvedJavaMethod;
|
|||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import javax.tools.ToolProvider;
|
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@ -137,7 +137,7 @@ public class RedefineClassTest extends TypeUniverse {
|
|||||||
int p = vmName.indexOf('@');
|
int p = vmName.indexOf('@');
|
||||||
assumeTrue(p != -1);
|
assumeTrue(p != -1);
|
||||||
String pid = vmName.substring(0, p);
|
String pid = vmName.substring(0, p);
|
||||||
ClassLoader cl = ToolProvider.getSystemToolClassLoader();
|
ClassLoader cl = ClassLoader.getSystemClassLoader();
|
||||||
Class<?> c = Class.forName("com.sun.tools.attach.VirtualMachine", true, cl);
|
Class<?> c = Class.forName("com.sun.tools.attach.VirtualMachine", true, cl);
|
||||||
Method attach = c.getDeclaredMethod("attach", String.class);
|
Method attach = c.getDeclaredMethod("attach", String.class);
|
||||||
Method loadAgent = c.getDeclaredMethod("loadAgent", String.class, String.class);
|
Method loadAgent = c.getDeclaredMethod("loadAgent", String.class, String.class);
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* @bug 8073480
|
* @bug 8073480
|
||||||
* @summary explicit range checks should be recognized by C2
|
* @summary explicit range checks should be recognized by C2
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @build sun.hotspot.WhiteBox
|
* @build sun.hotspot.WhiteBox
|
||||||
* @run driver ClassFileInstaller sun.hotspot.WhiteBox
|
* @run driver ClassFileInstaller sun.hotspot.WhiteBox
|
||||||
* @run main/othervm -ea -Xmixed -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI
|
* @run main/othervm -ea -Xmixed -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* @bug 8010927
|
* @bug 8010927
|
||||||
* @summary Kitchensink crashed with SIGSEGV, Problematic frame: v ~StubRoutines::checkcast_arraycopy
|
* @summary Kitchensink crashed with SIGSEGV, Problematic frame: v ~StubRoutines::checkcast_arraycopy
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @build sun.hotspot.WhiteBox
|
* @build sun.hotspot.WhiteBox
|
||||||
* @run driver ClassFileInstaller sun.hotspot.WhiteBox
|
* @run driver ClassFileInstaller sun.hotspot.WhiteBox
|
||||||
* sun.hotspot.WhiteBox$WhiteBoxPermission
|
* sun.hotspot.WhiteBox$WhiteBoxPermission
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* @bug 8016474
|
* @bug 8016474
|
||||||
* @summary The bug only happens with C1 and G1 using a different ObjectAlignmentInBytes than KlassAlignmentInBytes (which is 8)
|
* @summary The bug only happens with C1 and G1 using a different ObjectAlignmentInBytes than KlassAlignmentInBytes (which is 8)
|
||||||
*
|
*
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @run main/othervm -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=32
|
* @run main/othervm -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=32
|
||||||
* compiler.unsafe.GetUnsafeObjectG1PreBarrier
|
* compiler.unsafe.GetUnsafeObjectG1PreBarrier
|
||||||
*/
|
*/
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* @bug 8143628
|
* @bug 8143628
|
||||||
* @summary Test unsafe access for boolean
|
* @summary Test unsafe access for boolean
|
||||||
*
|
*
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestBoolean
|
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestBoolean
|
||||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestBoolean
|
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestBoolean
|
||||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestBoolean
|
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestBoolean
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* @bug 8143628
|
* @bug 8143628
|
||||||
* @summary Test unsafe access for byte
|
* @summary Test unsafe access for byte
|
||||||
*
|
*
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestByte
|
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestByte
|
||||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestByte
|
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestByte
|
||||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestByte
|
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestByte
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* @bug 8143628
|
* @bug 8143628
|
||||||
* @summary Test unsafe access for char
|
* @summary Test unsafe access for char
|
||||||
*
|
*
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestChar
|
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestChar
|
||||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestChar
|
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestChar
|
||||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestChar
|
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestChar
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* @bug 8143628
|
* @bug 8143628
|
||||||
* @summary Test unsafe access for double
|
* @summary Test unsafe access for double
|
||||||
*
|
*
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestDouble
|
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestDouble
|
||||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestDouble
|
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestDouble
|
||||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestDouble
|
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestDouble
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* @bug 8143628
|
* @bug 8143628
|
||||||
* @summary Test unsafe access for float
|
* @summary Test unsafe access for float
|
||||||
*
|
*
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestFloat
|
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestFloat
|
||||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestFloat
|
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestFloat
|
||||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestFloat
|
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestFloat
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* @bug 8143628
|
* @bug 8143628
|
||||||
* @summary Test unsafe access for int
|
* @summary Test unsafe access for int
|
||||||
*
|
*
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestInt
|
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestInt
|
||||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestInt
|
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestInt
|
||||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestInt
|
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestInt
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* @bug 8143628
|
* @bug 8143628
|
||||||
* @summary Test unsafe access for long
|
* @summary Test unsafe access for long
|
||||||
*
|
*
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestLong
|
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestLong
|
||||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestLong
|
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestLong
|
||||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestLong
|
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestLong
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* @bug 8143628
|
* @bug 8143628
|
||||||
* @summary Test unsafe access for Object
|
* @summary Test unsafe access for Object
|
||||||
*
|
*
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestObject
|
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestObject
|
||||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestObject
|
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestObject
|
||||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestObject
|
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestObject
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* @bug 8143628
|
* @bug 8143628
|
||||||
* @summary Test unsafe access for short
|
* @summary Test unsafe access for short
|
||||||
*
|
*
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestShort
|
* @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestShort
|
||||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestShort
|
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestShort
|
||||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestShort
|
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestShort
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 8158260
|
* @bug 8158260
|
||||||
* @summary Test unaligned Unsafe accesses
|
* @summary Test unaligned Unsafe accesses
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
*
|
*
|
||||||
* @run main/othervm -Diters=20000 -XX:-UseOnStackReplacement -XX:-BackgroundCompilation
|
* @run main/othervm -Diters=20000 -XX:-UseOnStackReplacement -XX:-BackgroundCompilation
|
||||||
* compiler.unsafe.JdkInternalMiscUnsafeUnalignedAccess
|
* compiler.unsafe.JdkInternalMiscUnsafeUnalignedAccess
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 8077504
|
* @bug 8077504
|
||||||
* @summary Unsafe load can loose control dependency and cause crash
|
* @summary Unsafe load can loose control dependency and cause crash
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:+open
|
||||||
*
|
*
|
||||||
* @run main/othervm -XX:-BackgroundCompilation -XX:-UseOnStackReplacement
|
* @run main/othervm -XX:-BackgroundCompilation -XX:-UseOnStackReplacement
|
||||||
* compiler.unsafe.TestUnsafeLoadControl
|
* compiler.unsafe.TestUnsafeLoadControl
|
||||||
|
@ -28,7 +28,8 @@
|
|||||||
* @key gc
|
* @key gc
|
||||||
* @requires vm.gc.G1
|
* @requires vm.gc.G1
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:open
|
||||||
|
* @modules java.base/java.lang:open
|
||||||
* java.management
|
* java.management
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -28,7 +28,8 @@
|
|||||||
* @key gc
|
* @key gc
|
||||||
* @requires vm.gc.G1
|
* @requires vm.gc.G1
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:open
|
||||||
|
* @modules java.base/java.lang:open
|
||||||
* java.management
|
* java.management
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -28,7 +28,8 @@
|
|||||||
* @key gc
|
* @key gc
|
||||||
* @requires vm.gc.G1
|
* @requires vm.gc.G1
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:open
|
||||||
|
* @modules java.base/java.lang:open
|
||||||
* java.management
|
* java.management
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -28,7 +28,8 @@
|
|||||||
* @key gc
|
* @key gc
|
||||||
* @requires vm.gc.G1
|
* @requires vm.gc.G1
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:open
|
||||||
|
* @modules java.base/java.lang:open
|
||||||
* java.management
|
* java.management
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -28,7 +28,8 @@
|
|||||||
* @key gc
|
* @key gc
|
||||||
* @requires vm.gc.G1
|
* @requires vm.gc.G1
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:open
|
||||||
|
* @modules java.base/java.lang:open
|
||||||
* java.management
|
* java.management
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -28,7 +28,8 @@
|
|||||||
* @key gc
|
* @key gc
|
||||||
* @requires vm.gc.G1
|
* @requires vm.gc.G1
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:open
|
||||||
|
* @modules java.base/java.lang:open
|
||||||
* java.management
|
* java.management
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -190,6 +190,7 @@ class TestStringDeduplicationTools {
|
|||||||
"-Xmx" + Xmx + "m",
|
"-Xmx" + Xmx + "m",
|
||||||
"-XX:+UseG1GC",
|
"-XX:+UseG1GC",
|
||||||
"-XX:+UnlockDiagnosticVMOptions",
|
"-XX:+UnlockDiagnosticVMOptions",
|
||||||
|
"--add-opens=java.base/java.lang=ALL-UNNAMED",
|
||||||
"-XX:+VerifyAfterGC" // Always verify after GC
|
"-XX:+VerifyAfterGC" // Always verify after GC
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -28,7 +28,8 @@
|
|||||||
* @key gc
|
* @key gc
|
||||||
* @requires vm.gc.G1
|
* @requires vm.gc.G1
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:open
|
||||||
|
* @modules java.base/java.lang:open
|
||||||
* java.management
|
* java.management
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -38,7 +38,8 @@ public class TestGCBasher {
|
|||||||
FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/"));
|
FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/"));
|
||||||
Stream<Path> s = Files.walk(fs.getPath("/"));
|
Stream<Path> s = Files.walk(fs.getPath("/"));
|
||||||
for (Path p : (Iterable<Path>)s::iterator) {
|
for (Path p : (Iterable<Path>)s::iterator) {
|
||||||
if (p.toString().endsWith(".class")) {
|
if (p.toString().endsWith(".class") &&
|
||||||
|
!p.getFileName().toString().equals("module-info.class")) {
|
||||||
byte[] data = Files.readAllBytes(p);
|
byte[] data = Files.readAllBytes(p);
|
||||||
Decompiler d = new Decompiler(data);
|
Decompiler d = new Decompiler(data);
|
||||||
ClassInfo ci = d.getClassInfo();
|
ClassInfo ci = d.getClassInfo();
|
||||||
|
@ -39,6 +39,10 @@ public class LocalLongTest {
|
|||||||
public static void main(String... args) throws Exception {
|
public static void main(String... args) throws Exception {
|
||||||
if (Platform.is64bit()) {
|
if (Platform.is64bit()) {
|
||||||
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xint",
|
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xint",
|
||||||
|
"--add-opens",
|
||||||
|
"java.base/java.lang=ALL-UNNAMED",
|
||||||
|
"--add-opens",
|
||||||
|
"java.base/java.lang.invoke=ALL-UNNAMED",
|
||||||
"LocalLongHelper");
|
"LocalLongHelper");
|
||||||
OutputAnalyzer o = new OutputAnalyzer(pb.start());
|
OutputAnalyzer o = new OutputAnalyzer(pb.start());
|
||||||
o.shouldHaveExitValue(0);
|
o.shouldHaveExitValue(0);
|
||||||
|
@ -52,6 +52,8 @@ public class StackTraceLogging {
|
|||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:stacktrace=info",
|
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:stacktrace=info",
|
||||||
"-XX:MaxJavaStackTraceDepth=1024",
|
"-XX:MaxJavaStackTraceDepth=1024",
|
||||||
|
"--add-opens",
|
||||||
|
"java.base/java.lang=ALL-UNNAMED",
|
||||||
"TestThrowable");
|
"TestThrowable");
|
||||||
analyzeOutputOn(pb);
|
analyzeOutputOn(pb);
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,8 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 8150778
|
* @bug 8150778
|
||||||
* @summary Test exception depths, and code to get stack traces
|
* @summary Test exception depths, and code to get stack traces
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:open
|
||||||
|
* @modules java.base/java.lang:open
|
||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @run main/othervm -XX:MaxJavaStackTraceDepth=1024 TestThrowable
|
* @run main/othervm -XX:MaxJavaStackTraceDepth=1024 TestThrowable
|
||||||
*/
|
*/
|
||||||
|
@ -25,7 +25,8 @@
|
|||||||
* @test
|
* @test
|
||||||
* @bug 8033735
|
* @bug 8033735
|
||||||
* @summary check backtrace field introspection
|
* @summary check backtrace field introspection
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc:open
|
||||||
|
* @modules java.base/java.lang:open
|
||||||
* @run main ThrowableIntrospectionSegfault
|
* @run main ThrowableIntrospectionSegfault
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ public class GetSysPkgTest {
|
|||||||
ClassFileInstaller.writeClassToDisk("GetSysPkg_package/GetSysClass", klassbuf);
|
ClassFileInstaller.writeClassToDisk("GetSysPkg_package/GetSysClass", klassbuf);
|
||||||
|
|
||||||
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xbootclasspath/a:bl_dir",
|
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xbootclasspath/a:bl_dir",
|
||||||
"--add-exports=java.base/jdk.internal.loader=ALL-UNNAMED", "-cp", "." + File.pathSeparator +
|
"--add-opens=java.base/jdk.internal.loader=ALL-UNNAMED", "-cp", "." + File.pathSeparator +
|
||||||
System.getProperty("test.classes"), "GetSysPkgTest", "do_tests");
|
System.getProperty("test.classes"), "GetSysPkgTest", "do_tests");
|
||||||
OutputAnalyzer output = new OutputAnalyzer(pb.start());
|
OutputAnalyzer output = new OutputAnalyzer(pb.start());
|
||||||
output.shouldHaveExitValue(0);
|
output.shouldHaveExitValue(0);
|
||||||
|
@ -69,7 +69,7 @@ public class CheckRead {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m3")
|
.requires("m3")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
@ -80,9 +80,9 @@ public class CheckRead {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: p2 is exported to m1
|
// Packages exported: p2 is exported to m1
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p2", "m1")
|
.exports("p2", Set.of("m1"))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Define module: m3
|
// Define module: m3
|
||||||
@ -90,10 +90,10 @@ public class CheckRead {
|
|||||||
// Packages: p3
|
// Packages: p3
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m3 =
|
ModuleDescriptor descriptor_m3 =
|
||||||
new ModuleDescriptor.Builder("m3")
|
ModuleDescriptor.module("m3")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.conceals("p3")
|
.contains("p3")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Set up a ModuleFinder containing all modules for this layer.
|
// Set up a ModuleFinder containing all modules for this layer.
|
||||||
|
@ -69,7 +69,7 @@ public class DiffCL_CheckRead {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m3")
|
.requires("m3")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
@ -80,9 +80,9 @@ public class DiffCL_CheckRead {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: p2 is exported to m1
|
// Packages exported: p2 is exported to m1
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p2", "m1")
|
.exports("p2", Set.of("m1"))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Define module: m3
|
// Define module: m3
|
||||||
@ -90,10 +90,10 @@ public class DiffCL_CheckRead {
|
|||||||
// Packages: p3
|
// Packages: p3
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m3 =
|
ModuleDescriptor descriptor_m3 =
|
||||||
new ModuleDescriptor.Builder("m3")
|
ModuleDescriptor.module("m3")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.conceals("p3")
|
.contains("p3")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Set up a ModuleFinder containing all modules for this layer.
|
// Set up a ModuleFinder containing all modules for this layer.
|
||||||
|
@ -70,7 +70,7 @@ public class DiffCL_ExpQualOther {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.requires("m3")
|
.requires("m3")
|
||||||
@ -82,9 +82,9 @@ public class DiffCL_ExpQualOther {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: p2 is exported to m3
|
// Packages exported: p2 is exported to m3
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p2", "m3")
|
.exports("p2", Set.of("m3"))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Define module: m3
|
// Define module: m3
|
||||||
@ -92,10 +92,10 @@ public class DiffCL_ExpQualOther {
|
|||||||
// Packages: p3
|
// Packages: p3
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m3 =
|
ModuleDescriptor descriptor_m3 =
|
||||||
new ModuleDescriptor.Builder("m3")
|
ModuleDescriptor.module("m3")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.conceals("p3")
|
.contains("p3")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Set up a ModuleFinder containing all modules for this layer.
|
// Set up a ModuleFinder containing all modules for this layer.
|
||||||
|
@ -68,7 +68,7 @@ public class DiffCL_ExpQualToM1 {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported to unqualifiedly
|
// Packages exported: p1 is exported to unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
@ -79,9 +79,9 @@ public class DiffCL_ExpQualToM1 {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: package p2 is exported to m1
|
// Packages exported: package p2 is exported to m1
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p2", "m1")
|
.exports("p2", Set.of("m1"))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Set up a ModuleFinder containing all modules for this layer.
|
// Set up a ModuleFinder containing all modules for this layer.
|
||||||
|
@ -69,7 +69,7 @@ public class DiffCL_ExpUnqual {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
@ -80,7 +80,7 @@ public class DiffCL_ExpUnqual {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: package p2 is exported to m1
|
// Packages exported: package p2 is exported to m1
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p2")
|
.exports("p2")
|
||||||
.build();
|
.build();
|
||||||
|
@ -68,7 +68,7 @@ public class DiffCL_PkgNotExp {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
@ -79,9 +79,9 @@ public class DiffCL_PkgNotExp {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.conceals("p2")
|
.contains("p2")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Set up a ModuleFinder containing all modules for this layer.
|
// Set up a ModuleFinder containing all modules for this layer.
|
||||||
|
@ -80,7 +80,7 @@ public class DiffCL_Umod {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
.build();
|
.build();
|
||||||
@ -129,7 +129,7 @@ public class DiffCL_Umod {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
.build();
|
.build();
|
||||||
@ -178,7 +178,7 @@ public class DiffCL_Umod {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
.build();
|
.build();
|
||||||
|
@ -75,7 +75,7 @@ public class DiffCL_UmodUpkg {
|
|||||||
// Packages: p3
|
// Packages: p3
|
||||||
// Packages exported: p3 is exported unqualifiedly
|
// Packages exported: p3 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p3")
|
.exports("p3")
|
||||||
.build();
|
.build();
|
||||||
@ -124,7 +124,7 @@ public class DiffCL_UmodUpkg {
|
|||||||
// Packages: p3
|
// Packages: p3
|
||||||
// Packages exported: p3 is exported unqualifiedly
|
// Packages exported: p3 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p3")
|
.exports("p3")
|
||||||
.build();
|
.build();
|
||||||
|
@ -70,7 +70,7 @@ public class ExpQualOther {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.requires("m3")
|
.requires("m3")
|
||||||
@ -82,9 +82,9 @@ public class ExpQualOther {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: p2 is exported to m3
|
// Packages exported: p2 is exported to m3
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p2", "m3")
|
.exports("p2", Set.of("m3"))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Define module: m3
|
// Define module: m3
|
||||||
@ -92,10 +92,10 @@ public class ExpQualOther {
|
|||||||
// Packages: p3
|
// Packages: p3
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m3 =
|
ModuleDescriptor descriptor_m3 =
|
||||||
new ModuleDescriptor.Builder("m3")
|
ModuleDescriptor.module("m3")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.conceals("p3")
|
.contains("p3")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Set up a ModuleFinder containing all modules for this layer.
|
// Set up a ModuleFinder containing all modules for this layer.
|
||||||
|
@ -58,7 +58,7 @@ public class ExpQualToM1 {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
@ -69,9 +69,9 @@ public class ExpQualToM1 {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: p2 is exported qualifiedly to m1
|
// Packages exported: p2 is exported qualifiedly to m1
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p2", "m1")
|
.exports("p2", Set.of("m1"))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Set up a ModuleFinder containing all modules for this layer.
|
// Set up a ModuleFinder containing all modules for this layer.
|
||||||
|
@ -58,7 +58,7 @@ public class ExpUnqual {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
@ -69,7 +69,7 @@ public class ExpUnqual {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: p2 is exported unqualifiedly
|
// Packages exported: p2 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p2")
|
.exports("p2")
|
||||||
.build();
|
.build();
|
||||||
|
@ -71,7 +71,7 @@ public class ExportAllUnnamed {
|
|||||||
// Packages: none
|
// Packages: none
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.build();
|
.build();
|
||||||
@ -81,9 +81,9 @@ public class ExportAllUnnamed {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: p2 is exported unqualifiedly
|
// Packages exported: p2 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p2", "m1")
|
.exports("p2", Set.of("m1"))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Set up a ModuleFinder containing all modules for this layer.
|
// Set up a ModuleFinder containing all modules for this layer.
|
||||||
|
@ -68,7 +68,7 @@ public class PkgNotExp {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
@ -79,9 +79,9 @@ public class PkgNotExp {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.conceals("p2")
|
.contains("p2")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Set up a ModuleFinder containing all modules for this layer.
|
// Set up a ModuleFinder containing all modules for this layer.
|
||||||
|
@ -80,7 +80,7 @@ public class Umod {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
.build();
|
.build();
|
||||||
@ -126,7 +126,7 @@ public class Umod {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
.build();
|
.build();
|
||||||
@ -172,7 +172,7 @@ public class Umod {
|
|||||||
// Packages: p1
|
// Packages: p1
|
||||||
// Packages exported: p1 is exported unqualifiedly
|
// Packages exported: p1 is exported unqualifiedly
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p1")
|
.exports("p1")
|
||||||
.build();
|
.build();
|
||||||
|
@ -70,7 +70,7 @@ public class UmodDiffCL_ExpQualOther {
|
|||||||
// Packages: none
|
// Packages: none
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.build();
|
.build();
|
||||||
@ -80,9 +80,9 @@ public class UmodDiffCL_ExpQualOther {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p2", "m1")
|
.exports("p2", Set.of("m1"))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Set up a ModuleFinder containing all modules for this layer.
|
// Set up a ModuleFinder containing all modules for this layer.
|
||||||
|
@ -70,7 +70,7 @@ public class UmodDiffCL_ExpUnqual {
|
|||||||
// Packages: none
|
// Packages: none
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.build();
|
.build();
|
||||||
@ -80,7 +80,7 @@ public class UmodDiffCL_ExpUnqual {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.exports("p2")
|
.exports("p2")
|
||||||
.build();
|
.build();
|
||||||
|
@ -69,7 +69,7 @@ public class UmodDiffCL_PkgNotExp {
|
|||||||
// Packages: none
|
// Packages: none
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m1 =
|
ModuleDescriptor descriptor_m1 =
|
||||||
new ModuleDescriptor.Builder("m1")
|
ModuleDescriptor.module("m1")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.requires("m2")
|
.requires("m2")
|
||||||
.build();
|
.build();
|
||||||
@ -79,9 +79,9 @@ public class UmodDiffCL_PkgNotExp {
|
|||||||
// Packages: p2
|
// Packages: p2
|
||||||
// Packages exported: none
|
// Packages exported: none
|
||||||
ModuleDescriptor descriptor_m2 =
|
ModuleDescriptor descriptor_m2 =
|
||||||
new ModuleDescriptor.Builder("m2")
|
ModuleDescriptor.module("m2")
|
||||||
.requires("java.base")
|
.requires("java.base")
|
||||||
.conceals("p2")
|
.contains("p2")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Set up a ModuleFinder containing all modules for this layer.
|
// Set up a ModuleFinder containing all modules for this layer.
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user