This commit is contained in:
J. Duke 2017-07-05 22:31:47 +02:00
commit bcd742e1e6
829 changed files with 27831 additions and 9657 deletions

View File

@ -3,8 +3,7 @@
^.idea/ ^.idea/
nbproject/private/ nbproject/private/
^webrev ^webrev
^.hgtip ^.src-rev$
^.bridge2
^.jib/ ^.jib/
.DS_Store .DS_Store
.metadata/ .metadata/

View File

@ -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

View File

@ -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

View File

@ -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]$'`]

View File

@ -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

View File

@ -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.

View File

@ -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])

View File

@ -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]$'`

View File

@ -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)
]) ])
################################################################################ ################################################################################

View File

@ -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])

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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],
[ [

View File

@ -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])

View File

@ -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

View File

@ -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",

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;
} }

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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") \

View File

@ -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: ";

View File

@ -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
}; };

View File

@ -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 */
}; };

View File

@ -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
}; };

View File

@ -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);

View File

@ -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);

View File

@ -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>

View File

@ -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
// //

View File

@ -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) {

View File

@ -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;

View File

@ -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;",

View File

@ -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;

View File

@ -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)

View File

@ -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);

View File

@ -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

View File

@ -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
*/ */

View File

@ -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
*/ */

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
*/ */

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
*/ */

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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
*/ */

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
*/ */

View File

@ -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
*/ */

View File

@ -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
*/ */

View File

@ -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
*/ */

View File

@ -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
*/ */

View File

@ -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
*/ */

View File

@ -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
}; };

View File

@ -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
*/ */

View File

@ -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();

View File

@ -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);

View File

@ -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);
} }

View File

@ -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
*/ */

View File

@ -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
*/ */

View File

@ -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);

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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();

View File

@ -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.

View File

@ -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();

View File

@ -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();

View File

@ -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.

View File

@ -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.

View File

@ -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();

View File

@ -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.

View File

@ -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.

View File

@ -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();

View File

@ -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.

View File

@ -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();

View File

@ -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