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/
nbproject/private/
^webrev
^.hgtip
^.bridge2
^.src-rev$
^.jib/
.DS_Store
.metadata/

View File

@ -389,3 +389,4 @@ f64afae7f1a5608e438585bbf0bc23785e69cba0 jdk-9+141
8d337fd6333e28c48aa87880144b840aad82baaf jdk-9+144
ff98aa9ec9fae991e426ce5926fc9036d25f5562 jdk-9+145
a22e2671d88f6b22a4aa82e3966986542ed2a381 jdk-9+146
5f6920274c48eb00d31afee6c034826a754c13d9 jdk-9+147

View File

@ -98,7 +98,7 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
fi
])
# Test: Is bootjdk explicitely set by command line arguments?
# Test: Is bootjdk explicitly set by command line arguments?
AC_DEFUN([BOOTJDK_CHECK_ARGUMENTS],
[
if test "x$with_boot_jdk" != x; then
@ -238,7 +238,7 @@ AC_DEFUN([BOOTJDK_CHECK_TOOL_IN_BOOTJDK],
$1=$BOOT_JDK/bin/$2
if test ! -x [$]$1; then
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])
fi
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
# 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])
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;
@ -286,7 +286,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
if test "x$BOOT_JDK_FOUND" = xno; then
HELP_MSG_MISSING_DEPENDENCY([openjdk])
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])
fi

View File

@ -217,6 +217,13 @@ AC_DEFUN([BPERF_SETUP_CCACHE],
AC_DEFUN([BPERF_SETUP_CCACHE_USAGE],
[
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
HAS_BAD_CCACHE=[`$ECHO $CCACHE_VERSION | \
$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
ENABLE_DEBUG_SYMBOLS := false
####################################################
#
# Legacy Hotspot support
# Control wether Hotspot builds gtest tests
BUILD_GTEST := false
# Legacy setting: OPT or DBG
VARIANT := OPT
# Legacy setting: true or false
FASTDEBUG := false
# Legacy setting: debugging the class files?
DEBUG_CLASSFILES := false
JVM_VARIANTS := server
# Some users still set EXTRA_*FLAGS on the make command line. Must
# make sure to override that when building buildjdk.
override EXTRA_CFLAGS :=
override EXTRA_CXXFLAGS :=
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
TOOLCHAIN_SETUP_BUILD_COMPILERS
TOOLCHAIN_SETUP_LEGACY
TOOLCHAIN_MISC_CHECKS
# 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])
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
elif test "x$enable_warnings_as_errors" = "xno"; then
AC_MSG_RESULT([no])

View File

@ -700,8 +700,6 @@ JVM_FEATURES_client
JVM_FEATURES_server
INCLUDE_DTRACE
GCOV_ENABLED
STRIP_POLICY
DEBUG_BINARIES
ZIP_EXTERNAL_DEBUG_SYMBOLS
COPY_DEBUG_SYMBOLS
COMPILE_WITH_DEBUG_SYMBOLS
@ -791,11 +789,6 @@ JTREGEXE
HOTSPOT_TOOLCHAIN_TYPE
USING_BROKEN_SUSE_LD
PACKAGE_PATH
USE_CLANG
HOTSPOT_LD
HOTSPOT_CXX
HOTSPOT_RC
HOTSPOT_MT
BUILD_AS
BUILD_LDCXX
BUILD_LD
@ -1974,8 +1967,8 @@ Optional Features:
--enable-debug set the debug level to fastdebug (shorthand for
--with-debug-level=fastdebug) [disabled]
--enable-headless-only only build headless (no GUI) support [disabled]
--enable-unlimited-crypto
Enable unlimited crypto policy [disabled]
--disable-unlimited-crypto
Disable unlimited crypto policy [enabled]
--disable-keep-packaged-modules
Do not keep packaged modules in jdk image [enable]
--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
# Test: Is bootjdk explicitely set by command line arguments?
# Test: Is bootjdk explicitly set by command line arguments?
# Test: Is $JAVA_HOME set?
@ -4911,7 +4904,7 @@ TOOLCHAIN_DESCRIPTION_xlc="IBM XL C/C++"
# Minimum supported versions, empty means unspecified
TOOLCHAIN_MINIMUM_VERSION_clang="3.2"
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_xlc=""
@ -4982,10 +4975,6 @@ TOOLCHAIN_MINIMUM_VERSION_xlc=""
# 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.
@ -5093,7 +5082,7 @@ VS_SDK_PLATFORM_NAME_2013=
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
DATE_WHEN_GENERATED=1479997904
DATE_WHEN_GENERATED=1480714260
###############################################################################
#
@ -15523,7 +15512,7 @@ test -n "$target_alias" &&
;;
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"
if test "x$VAR_OS_TYPE" != x; then
OPENJDK_BUILD_OS_TYPE="$VAR_OS_TYPE"
@ -15662,7 +15651,7 @@ $as_echo "$OPENJDK_BUILD_OS-$OPENJDK_BUILD_CPU" >&6; }
;;
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"
if test "x$VAR_OS_TYPE" != x; then
OPENJDK_TARGET_OS_TYPE="$VAR_OS_TYPE"
@ -24240,7 +24229,7 @@ fi
if test "${enable_unlimited_crypto+set}" = set; then :
enableval=$enable_unlimited_crypto;
else
enable_unlimited_crypto=no
enable_unlimited_crypto=yes
fi
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
fi
# 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
else
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
# 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
# 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: 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: This might be fixed by explicitely setting --with-boot-jdk" >&6;}
{ $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 explicitly setting --with-boot-jdk" >&6;}
as_fn_error $? "Cannot continue" "$LINENO" 5
fi
@ -29910,8 +29899,8 @@ $as_echo_n "checking for java in Boot JDK... " >&6; }
if test ! -x $JAVA; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$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: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
{ $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 explicitly setting --with-boot-jdk" >&6;}
as_fn_error $? "Could not find java in the Boot JDK" "$LINENO" 5
fi
{ $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
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$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: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
{ $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 explicitly setting --with-boot-jdk" >&6;}
as_fn_error $? "Could not find java in the Boot JDK" "$LINENO" 5
fi
{ $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
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$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: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
{ $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 explicitly setting --with-boot-jdk" >&6;}
as_fn_error $? "Could not find javac in the Boot JDK" "$LINENO" 5
fi
{ $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
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$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: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
{ $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 explicitly setting --with-boot-jdk" >&6;}
as_fn_error $? "Could not find javac in the Boot JDK" "$LINENO" 5
fi
{ $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
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$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: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
{ $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 explicitly setting --with-boot-jdk" >&6;}
as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5
fi
{ $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
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$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: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
{ $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 explicitly setting --with-boot-jdk" >&6;}
as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5
fi
{ $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
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$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: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
{ $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 explicitly setting --with-boot-jdk" >&6;}
as_fn_error $? "Could not find jar in the Boot JDK" "$LINENO" 5
fi
{ $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
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$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: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
{ $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 explicitly setting --with-boot-jdk" >&6;}
as_fn_error $? "Could not find jar in the Boot JDK" "$LINENO" 5
fi
{ $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
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$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: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
{ $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 explicitly setting --with-boot-jdk" >&6;}
as_fn_error $? "Could not find jarsigner in the Boot JDK" "$LINENO" 5
fi
{ $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
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$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: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
{ $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 explicitly setting --with-boot-jdk" >&6;}
as_fn_error $? "Could not find jarsigner in the Boot JDK" "$LINENO" 5
fi
{ $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
IMPORT_MODULES_SRC="$IMPORT_MODULES_TOPDIR/modules_src"
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
IMPORT_MODULES_MAKE="$IMPORT_MODULES_TOPDIR/make"
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
# cc -V output typically looks like
# 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`
# 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
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
@ -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
# cc -V output typically looks like
# 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`
# 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
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
@ -35261,9 +35260,9 @@ $as_echo "$as_me: WARNING: This typically indicates a broken setup, and is not s
fi
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){3} ]] ; 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: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){4} ]] ; then
{ $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 four parts (W.X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
fi
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;}
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
@ -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 [].
REFERENCE_VERSION=$TOOLCHAIN_MINIMUM_VERSION
if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then
as_fn_error $? "Internal error: Cannot compare to $TOOLCHAIN_MINIMUM_VERSION, only three parts (X.Y.Z) is supported" "$LINENO" 5
if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then
as_fn_error $? "Internal error: Cannot compare to $TOOLCHAIN_MINIMUM_VERSION, only four parts (W.X.Y.Z) is supported" "$LINENO" 5
fi
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
# 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
:
@ -46956,9 +46955,11 @@ $as_echo "$as_me: Rewriting BUILD_STRIP to \"$new_complete\"" >&6;}
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
# cc -V output typically looks like
# 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`
# 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
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
@ -47076,9 +47077,11 @@ $as_echo "$as_me: Using $TOOLCHAIN_TYPE $COMPILER_NAME compiler version $COMPILE
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
# cc -V output typically looks like
# 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`
# 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
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
@ -47198,9 +47201,9 @@ $as_echo "$as_me: WARNING: This typically indicates a broken setup, and is not s
fi
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
if [[ "[$]BUILD_CC_VERSION_NUMBER" =~ (.*\.){3} ]] ; 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: WARNING: C compiler version number has more than three parts (X.Y.Z): $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
if [[ "[$]BUILD_CC_VERSION_NUMBER" =~ (.*\.){4} ]] ; then
{ $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 four parts (W.X.Y.Z): $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
fi
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;}
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
# 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
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){3} ]] ; 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: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){4} ]] ; then
{ $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 four parts (W.X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;}
fi
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;}
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
@ -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?
@ -49914,8 +49855,8 @@ $as_echo "$supports" >&6; }
# Need to assign to a variable since m4 is blocked from modifying parts in [].
REFERENCE_VERSION=6
if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then
as_fn_error $? "Internal error: Cannot compare to 6, only three parts (X.Y.Z) is supported" "$LINENO" 5
if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then
as_fn_error $? "Internal error: Cannot compare to 6, only four parts (W.X.Y.Z) is supported" "$LINENO" 5
fi
if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
@ -49923,7 +49864,7 @@ $as_echo "$supports" >&6; }
fi
# 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
:
@ -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 [].
REFERENCE_VERSION=4.8
if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then
as_fn_error $? "Internal error: Cannot compare to 4.8, only three parts (X.Y.Z) is supported" "$LINENO" 5
if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then
as_fn_error $? "Internal error: Cannot compare to 4.8, only four parts (W.X.Y.Z) is supported" "$LINENO" 5
fi
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
# 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
:
@ -50737,8 +50678,8 @@ $as_echo "$supports" >&6; }
# Need to assign to a variable since m4 is blocked from modifying parts in [].
REFERENCE_VERSION=6
if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then
as_fn_error $? "Internal error: Cannot compare to 6, only three parts (X.Y.Z) is supported" "$LINENO" 5
if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then
as_fn_error $? "Internal error: Cannot compare to 6, only four parts (W.X.Y.Z) is supported" "$LINENO" 5
fi
if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
@ -50746,7 +50687,7 @@ $as_echo "$supports" >&6; }
fi
# 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
:
@ -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 [].
REFERENCE_VERSION=4.8
if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then
as_fn_error $? "Internal error: Cannot compare to 4.8, only three parts (X.Y.Z) is supported" "$LINENO" 5
if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then
as_fn_error $? "Internal error: Cannot compare to 4.8, only four parts (W.X.Y.Z) is supported" "$LINENO" 5
fi
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
# 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
:
@ -51917,8 +51858,8 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if native warnings are errors" >&5
$as_echo_n "checking if native warnings are errors... " >&6; }
if test "x$enable_warnings_as_errors" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (explicitely set)" >&5
$as_echo "yes (explicitely set)" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (explicitly set)" >&5
$as_echo "yes (explicitly set)" >&6; }
WARNINGS_AS_ERRORS=true
elif test "x$enable_warnings_as_errors" = "xno"; then
{ $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
COPY_DEBUG_SYMBOLS=true
ZIP_EXTERNAL_DEBUG_SYMBOLS=true
# Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true
DEBUG_BINARIES=false
STRIP_POLICY=min_strip
elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then
COMPILE_WITH_DEBUG_SYMBOLS=false
COPY_DEBUG_SYMBOLS=false
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
DEBUG_BINARIES=false
STRIP_POLICY=no_strip
elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then
COMPILE_WITH_DEBUG_SYMBOLS=true
COPY_DEBUG_SYMBOLS=false
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
# Hotspot legacy support, will turn on -g when COPY_DEBUG_SYMBOLS=false
DEBUG_BINARIES=true
STRIP_POLICY=no_strip
STRIP=""
elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
@ -52618,10 +52545,6 @@ $as_echo "$NATIVE_DEBUG_SYMBOLS" >&6; }
COMPILE_WITH_DEBUG_SYMBOLS=true
COPY_DEBUG_SYMBOLS=true
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
# Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true
DEBUG_BINARIES=false
STRIP_POLICY=min_strip
else
as_fn_error $? "Allowed native debug symbols are: none, internal, external, zipped" "$LINENO" 5
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.
if test "${enable_native_coverage+set}" = set; then :
@ -53195,7 +53114,7 @@ fi
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"
POSSIBLE_MSVC_DLL="$with_msvcr_dll"
@ -54544,7 +54463,7 @@ fi
if test "x$MSVCP_NAME" != "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"
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
# 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
x_includes="${with_x}/include"
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$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
HAS_BAD_CCACHE=`$ECHO $CCACHE_VERSION | \
$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)
# Enable or disable unlimited crypto
AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--enable-unlimited-crypto],
[Enable unlimited crypto policy @<:@disabled@:>@])],,
[enable_unlimited_crypto=no])
AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--disable-unlimited-crypto],
[Disable unlimited crypto policy @<:@enabled@:>@])],,
[enable_unlimited_crypto=yes])
if test "x$enable_unlimited_crypto" = "xyes"; then
UNLIMITED_CRYPTO=true
else
@ -265,28 +265,14 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
COMPILE_WITH_DEBUG_SYMBOLS=true
COPY_DEBUG_SYMBOLS=true
ZIP_EXTERNAL_DEBUG_SYMBOLS=true
# Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true
DEBUG_BINARIES=false
STRIP_POLICY=min_strip
elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then
COMPILE_WITH_DEBUG_SYMBOLS=false
COPY_DEBUG_SYMBOLS=false
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
DEBUG_BINARIES=false
STRIP_POLICY=no_strip
elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then
COMPILE_WITH_DEBUG_SYMBOLS=true
COPY_DEBUG_SYMBOLS=false
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
# Hotspot legacy support, will turn on -g when COPY_DEBUG_SYMBOLS=false
DEBUG_BINARIES=true
STRIP_POLICY=no_strip
STRIP=""
elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
@ -300,10 +286,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
COMPILE_WITH_DEBUG_SYMBOLS=true
COPY_DEBUG_SYMBOLS=true
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
# Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true
DEBUG_BINARIES=false
STRIP_POLICY=min_strip
else
AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped])
fi
@ -321,10 +303,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
AC_SUBST(COMPILE_WITH_DEBUG_SYMBOLS)
AC_SUBST(COPY_DEBUG_SYMBOLS)
AC_SUBST(ZIP_EXTERNAL_DEBUG_SYMBOLS)
# Legacy values
AC_SUBST(DEBUG_BINARIES)
AC_SUBST(STRIP_POLICY)
])
################################################################################

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])
fi
# 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
else
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
# 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
x_includes="${with_x}/include"
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.
PLATFORM_EXTRACT_VARS_FROM_OS($build_os)
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"
if test "x$VAR_OS_TYPE" != x; then
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.
PLATFORM_EXTRACT_VARS_FROM_OS($host_os)
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"
if test "x$VAR_OS_TYPE" != x; then
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
IMPORT_MODULES_SRC="$IMPORT_MODULES_TOPDIR/modules_src"
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
IMPORT_MODULES_MAKE="$IMPORT_MODULES_TOPDIR/make"
fi

View File

@ -53,7 +53,7 @@ TOOLCHAIN_DESCRIPTION_xlc="IBM XL C/C++"
# Minimum supported versions, empty means unspecified
TOOLCHAIN_MINIMUM_VERSION_clang="3.2"
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_xlc=""
@ -69,15 +69,15 @@ AC_DEFUN([TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS],
fi
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
if [ [[ "[$]$1CC_VERSION_NUMBER" =~ (.*\.){3} ]] ]; then
AC_MSG_WARN([C compiler version number has more than three parts (X.Y.Z): [$]$1CC_VERSION_NUMBER. Comparisons might be wrong.])
if [ [[ "[$]$1CC_VERSION_NUMBER" =~ (.*\.){4} ]] ]; then
AC_MSG_WARN([C compiler version number has more than four parts (W.X.Y.Z): [$]$1CC_VERSION_NUMBER. Comparisons might be wrong.])
fi
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.])
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
@ -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 [].
REFERENCE_VERSION=ARG_VERSION
if [ [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ]; then
AC_MSG_ERROR([Internal error: Cannot compare to ARG_VERSION, only three parts (X.Y.Z) is supported])
if [ [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ]; then
AC_MSG_ERROR([Internal error: Cannot compare to ARG_VERSION, only four parts (W.X.Y.Z) is supported])
fi
if [ [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ]; then
@ -103,7 +103,7 @@ BASIC_DEFUN_NAMED([TOOLCHAIN_CHECK_COMPILER_VERSION],
fi
# 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
:
@ -333,9 +333,11 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
# cc -V output typically looks like
# 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`
# 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
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.])
@ -827,7 +829,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
BUILD_AR="$AR"
TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS([], [OPENJDK_BUILD_])
fi
@ -842,36 +844,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
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.
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@:>@])])
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])
if test "x$MSVC_DLL" = x; then
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$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])
if test "x$MSVC_DLL" = x; then
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_JRE="$OTHER/images/jre"
echo "Selecting jdk images for compare"
elif [ -d "$(ls -d $THIS/licensee-src/build/*/images/jdk)" ] \
&& [ -d "$(ls -d $OTHER/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 2> /dev/null)" ]
then
echo "Selecting licensee images for compare"
# Simply override the THIS and OTHER dir with the build dir from

View File

@ -427,7 +427,7 @@ var getJibProfilesDependencies = function (input, common) {
jtreg: {
server: "javare",
revision: "4.2",
build_number: "b03",
build_number: "b04",
checksum_file: "MD5_VALUES",
file: "jtreg_bin-4.2.zip",
environment_name: "JT_HOME",

View File

@ -8,7 +8,6 @@
^src/share/tools/IdealGraphVisualizer/dist/
^src/share/tools/IdealGraphVisualizer/nbplatform/
.igv.log
^.hgtip
.DS_Store
^\.mx.jvmci/env
^\.mx.jvmci/.*\.pyc

View File

@ -549,3 +549,4 @@ d87d5d430c42342f0320ca7f5cbe0cbd1f9d62ba jdk-9+143
6187b582d02aee38341dc8ce4011906e9b364e9f jdk-9+144
61e7ea56312351657e69198c503a6f7bf865af83 jdk-9+145
a82cb5350cad96a0b4de496afebe3ded89f27efa jdk-9+146
132a72c782071cc11ab25cc7c9ee167c3632fea4 jdk-9+147

View File

@ -190,8 +190,6 @@ JVM_AddModuleExportsToAll
JVM_AddModuleExportsToAllUnnamed
JVM_AddModulePackage
JVM_AddReadsModule
JVM_CanReadModule
JVM_DefineModule
JVM_IsExportedToModule
JVM_SetBootLoaderUnnamedModule
JVM_GetModuleByPackageName

View File

@ -55,6 +55,9 @@ BUILD_HOTSPOT_JTREG_NATIVE_SRC := \
$(HOTSPOT_TOPDIR)/test/compiler/calls \
$(HOTSPOT_TOPDIR)/test/compiler/native \
$(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/compiler/jvmci/jdk.vm.ci.code.test \
$(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_libSimpleClassFileLoadHook := -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_libMAAClassLoadPrepare := -lc
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libMAAThreadStart := -lc

View File

@ -30,9 +30,7 @@ module jdk.vm.ci {
uses jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory;
provides jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory with
jdk.vm.ci.hotspot.aarch64.AArch64HotSpotJVMCIBackendFactory;
provides jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory with
jdk.vm.ci.hotspot.amd64.AMD64HotSpotJVMCIBackendFactory;
provides jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory with
jdk.vm.ci.hotspot.aarch64.AArch64HotSpotJVMCIBackendFactory,
jdk.vm.ci.hotspot.amd64.AMD64HotSpotJVMCIBackendFactory,
jdk.vm.ci.hotspot.sparc.SPARCHotSpotJVMCIBackendFactory;
}

View File

@ -36,6 +36,8 @@
#include "utilities/ostream.hpp"
#define UNNAMED_MODULE "Unnamed Module"
#define JAVAPKG "java/"
#define JAVAPKG_LEN 5
class ModuleClosure;

View File

@ -34,6 +34,7 @@
#include "classfile/packageEntry.hpp"
#include "classfile/stringTable.hpp"
#include "classfile/symbolTable.hpp"
#include "classfile/systemDictionary.hpp"
#include "classfile/vmSymbols.hpp"
#include "logging/log.hpp"
#include "memory/resourceArea.hpp"
@ -44,6 +45,7 @@
#include "runtime/handles.inline.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/reflection.hpp"
#include "utilities/stringUtils.hpp"
#include "utilities/utf8.hpp"
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);
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));
objArrayHandle packages_h(THREAD, packages_oop);
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",
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);
// append_if_missing() returns FALSE if entry already exists.
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);
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.
jobject Modules::get_module(jclass clazz, TRAPS) {
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));
}
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",
package_name, module_entry->name()->as_C_string());
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");
bool pkg_exists = false;

View File

@ -93,24 +93,6 @@ public:
// module does not exist.
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.
static jobject get_module(jclass clazz, TRAPS);

View File

@ -451,8 +451,6 @@
template(loader_name, "loader") \
template(module_name, "module") \
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(definePackage_name, "definePackage") \
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 */ \
template(jdk_internal_module_Modules, "jdk/internal/module/Modules") \
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_signature, "(Ljava/lang/reflect/Module;)V") \
template(appendToClassPathForInstrumentation_name, "appendToClassPathForInstrumentation") \

View File

@ -26,6 +26,7 @@
#include "classfile/classFileParser.hpp"
#include "classfile/classFileStream.hpp"
#include "classfile/javaClasses.hpp"
#include "classfile/moduleEntry.hpp"
#include "classfile/systemDictionary.hpp"
#include "classfile/systemDictionaryShared.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.
void InstanceKlass::check_prohibited_package(Symbol* class_name,
Handle class_loader,
TRAPS) {
const char* javapkg = "java/";
Handle class_loader,
TRAPS) {
ResourceMark rm(THREAD);
if (!class_loader.is_null() &&
!SystemDictionary::is_platform_class_loader(class_loader) &&
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);
assert(pkg_name != NULL, "Error in parsing package name starting with 'java/'");
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, "/", ".");
const char* msg_text1 = "Class loader (instance of): ";
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_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
struct JNINativeInterface_ jni_NativeInterface = {
NULL,
@ -3792,9 +3758,7 @@ struct JNINativeInterface_ jni_NativeInterface = {
// Module features
jni_GetModule,
jni_AddModuleReads,
jni_CanReadModule
jni_GetModule
};

View File

@ -770,12 +770,6 @@ struct JNINativeInterface_ {
jobject (JNICALL *GetModule)
(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);
}
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 */
};

View File

@ -2001,37 +2001,6 @@ JNI_ENTRY_CHECKED(jobject,
return result;
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
*/
@ -2317,9 +2286,7 @@ struct JNINativeInterface_ checked_jni_NativeInterface = {
// Module Features
checked_jni_GetModule,
checked_jni_AddModuleReads,
checked_jni_CanReadModule
checked_jni_GetModule
};

View File

@ -1008,8 +1008,8 @@ JVM_END
// Module support //////////////////////////////////////////////////////////////////////////////
JVM_ENTRY(void, JVM_DefineModule(JNIEnv *env, jobject module, jstring version, jstring location,
jobjectArray packages))
JVM_ENTRY(void, JVM_DefineModule(JNIEnv *env, jobject module, jboolean is_open, jstring version,
jstring location, jobjectArray packages))
JVMWrapper("JVM_DefineModule");
Modules::define_module(module, version, location, packages, CHECK);
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);
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))
JVMWrapper("JVM_AddModulePackage");
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
JVM_DefineModule(JNIEnv *env, jobject module, jstring version, jstring location,
jobjectArray packages);
JVM_DefineModule(JNIEnv *env, jobject module, jboolean is_open, jstring version,
jstring location, jobjectArray packages);
JNIEXPORT void JNICALL
JVM_SetBootLoaderUnnamedModule(JNIEnv *env, jobject module);
@ -431,12 +431,6 @@ JVM_AddModuleExportsToAll(JNIEnv *env, jobject from_module, jstring package);
JNIEXPORT void JNICALL
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
JVM_AddModulePackage(JNIEnv* env, jobject module, jstring package);

View File

@ -863,14 +863,12 @@ Agent_OnUnload_L(JavaVM *vm)</example>
</intro>
<intro id="bcimodules" label="Bytecode Instrumentation of code in modules">
Agents that instrument code in named modules may need to arrange for those
modules to read other modules. If code is instrumented to invoke a method
in a support class in another module, then the module of the instrumented
code should read the module of the supporting class. Furthermore, the
supporting class will only be accessible to the instrumented code if
it is <code>public</code> and in a package that is exported by its module.
Agents can use the JNI functions <code>CanReadModule</code> and
<code>AddModuleReads</code> to test and update a module to read another.
Agents can use the functions <functionlink id="AddModuleReads"/>,
<functionlink id="AddModuleExports"/>, <functionlink id="AddModuleOpens"/>,
<functionlink id="AddModuleUses"/> and <functionlink id="AddModuleProvides"/>
to update a module to expand the set of modules that it reads, the set of
packages that it exports or opens to other modules, or the services that it
uses and provides.
<p/>
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
@ -6561,6 +6559,227 @@ class C2 extends C1 implements I2 {
</error>
</errors>
</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 id="class" label="Class">
@ -11371,6 +11590,9 @@ myInit() {
<errorid id="JVMTI_ERROR_INVALID_FIELDID" num="25">
Invalid field.
</errorid>
<errorid id="JVMTI_ERROR_INVALID_MODULE" num="26">
Invalid module.
</errorid>
<errorid id="JVMTI_ERROR_INVALID_METHODID" num="23">
Invalid method.
</errorid>
@ -14492,17 +14714,17 @@ typedef void (JNICALL *jvmtiEventVMInit)
<change date="19 June 2013" version="1.2.3">
Added support for statically linked agents.
</change>
<change date="5 July 2016" version="9.0.0">
<change date="13 October 2016" version="9.0.0">
Support for modules:
- The majorversion is 9 now
- 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
- Add new capability can_generate_early_class_hook_events
- Add new function GetNamedModule
</change>
<change date="16 August 2016" version="9.0.0">
- Add new capabilities:
- can_generate_early_vmstart
- can_generate_early_class_hook_events
- Add new functions:
- GetAllModules
- AddModuleReads, AddModuleExports, AddModuleOpens, AddModuleUses, AddModuleProvides
Clarified can_redefine_any_classes, can_retransform_any_classes and IsModifiableClass API to
disallow some implementation defined classes.
</change>

View File

@ -227,6 +227,119 @@ JvmtiEnv::GetNamedModule(jobject class_loader, const char* package_name, jobject
} /* 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
//

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
JvmtiExport::decode_version_values(jint version, int * major, int * minor,
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
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
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);
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))
Modules::add_module_package(module, package, CHECK);
WB_END
@ -1866,10 +1858,6 @@ static JNINativeMethod methods[] = {
(void*)&WB_AddModuleExports },
{CC"AddReadsModule", CC"(Ljava/lang/Object;Ljava/lang/Object;)V",
(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",
(void*)&WB_AddModulePackage },
{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 ADDREADS "addreads"
#define ADDREADS_LEN 8
#define ADDOPENS "addopens"
#define ADDOPENS_LEN 8
#define PATCH "patch"
#define PATCH_LEN 5
#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;
if (matches_property_suffix(property_suffix, ADDEXPORTS, ADDEXPORTS_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, ADDMODS, ADDMODS_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 addexports_count = 0;
unsigned int addopens_count = 0;
unsigned int addmods_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++)) {
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)) {
if (!create_numbered_property("jdk.module.addmods", tail, addmods_count++)) {
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)

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, 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, Handle arg3, TRAPS);
// Low-level interface
static void call(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS);

View File

@ -47,8 +47,8 @@ requires.properties= \
vm.gc.ConcMarkSweep \
vm.debug
# Tests using jtreg 4.2 b03 features
requiredVersion=4.2 b03
# Tests using jtreg 4.2 b04 features
requiredVersion=4.2 b04
# Path to libraries in the topmost test directory. This is needed so @library
# does not need ../../ notation to reach them

View File

@ -25,7 +25,8 @@
* @test
* @bug 7190310
* @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
*/

View File

@ -25,7 +25,7 @@
* @test
* @bug 8011901
* @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
*/

View File

@ -25,7 +25,7 @@
* @test
* @bug 8038048
* @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
* -XX:-TieredCompilation -Xbatch

View File

@ -27,7 +27,8 @@
* @bug 8130150 8131779 8139907
* @summary Verify that the Montgomery multiply and square intrinsic works and correctly checks their arguments.
* @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
*
* @build sun.hotspot.WhiteBox

View File

@ -25,7 +25,7 @@
* @test
* @bug 8150465
* @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
* compiler.intrinsics.unsafe.AllocateUninitializedArray

View File

@ -25,7 +25,7 @@
* @test
* @bug 8136473
* @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
* compiler.intrinsics.unsafe.TestUnsafeUnalignedMismatchedAccesses

View File

@ -25,7 +25,7 @@
* @test
* @bug 6653795
* @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
*/

View File

@ -25,7 +25,7 @@
* @test
* @bug 8143930
* @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
* compiler.intrinsics.unsafe.UnsafeTwoCASLong

View File

@ -30,6 +30,7 @@
* java.compiler
* java.instrument
* java.management
* jdk.attach
*
* @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.Opcodes;
import javax.tools.ToolProvider;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@ -132,7 +132,7 @@ public class RedefineMethodUsedByMultipleMethodHandles {
int p = vmName.indexOf('@');
assert p != -1 : "VM name not in <pid>@<host> format: " + vmName;
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);
Method attach = c.getDeclaredMethod("attach", 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")
* @library / /test/lib
* @library ../common/patches
* @modules java.base/jdk.internal.misc
* @modules jdk.vm.ci/jdk.vm.ci.hotspot
* @modules java.base/jdk.internal.misc:+open
* @modules jdk.vm.ci/jdk.vm.ci.hotspot:+open
*
* @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper
* jdk.vm.ci/jdk.vm.ci.hotspot.PublicMetaspaceWrapperObject

View File

@ -27,10 +27,10 @@
* @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
* @library / /test/lib
* @library ../common/patches
* @modules java.base/jdk.internal.misc
* @modules java.base/jdk.internal.misc:+open
* @modules java.base/jdk.internal.org.objectweb.asm
* 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.meta
* @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper

View File

@ -26,8 +26,8 @@
* @bug 8136421
* @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
* @library /test/lib /
* @modules java.base/jdk.internal.misc
* @modules jdk.vm.ci/jdk.vm.ci.hotspot
* @modules java.base/jdk.internal.misc:open
* @modules jdk.vm.ci/jdk.vm.ci.hotspot:open
* jdk.vm.ci/jdk.vm.ci.runtime
* @run main/othervm -XX:+UnlockExperimentalVMOptions
* -Dcompiler.jvmci.compilerToVM.JVM_RegisterJVMCINatives.positive=true

View File

@ -27,9 +27,10 @@
* @bug 8161068
* @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
* @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
* 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
* jdk.vm.ci.hotspot.test.MethodHandleAccessProviderTest
*/

View File

@ -27,6 +27,7 @@
* @library ../../../../../
* @modules jdk.vm.ci/jdk.vm.ci.meta
* jdk.vm.ci/jdk.vm.ci.runtime
* jdk.attach
* java.base/jdk.internal.misc
* @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.Test;
import javax.tools.ToolProvider;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@ -137,7 +137,7 @@ public class RedefineClassTest extends TypeUniverse {
int p = vmName.indexOf('@');
assumeTrue(p != -1);
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);
Method attach = c.getDeclaredMethod("attach", String.class);
Method loadAgent = c.getDeclaredMethod("loadAgent", String.class, String.class);

View File

@ -26,7 +26,7 @@
* @bug 8073480
* @summary explicit range checks should be recognized by C2
* @library /test/lib /
* @modules java.base/jdk.internal.misc
* @modules java.base/jdk.internal.misc:+open
* @build sun.hotspot.WhiteBox
* @run driver ClassFileInstaller sun.hotspot.WhiteBox
* @run main/othervm -ea -Xmixed -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI

View File

@ -26,7 +26,7 @@
* @bug 8010927
* @summary Kitchensink crashed with SIGSEGV, Problematic frame: v ~StubRoutines::checkcast_arraycopy
* @library /test/lib
* @modules java.base/jdk.internal.misc
* @modules java.base/jdk.internal.misc:+open
* @build sun.hotspot.WhiteBox
* @run driver ClassFileInstaller sun.hotspot.WhiteBox
* sun.hotspot.WhiteBox$WhiteBoxPermission

View File

@ -26,7 +26,7 @@
* @bug 8016474
* @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
* compiler.unsafe.GetUnsafeObjectG1PreBarrier
*/

View File

@ -26,7 +26,7 @@
* @bug 8143628
* @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=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestBoolean
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestBoolean

View File

@ -26,7 +26,7 @@
* @bug 8143628
* @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=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestByte
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestByte

View File

@ -26,7 +26,7 @@
* @bug 8143628
* @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=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestChar
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestChar

View File

@ -26,7 +26,7 @@
* @bug 8143628
* @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=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestDouble
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestDouble

View File

@ -26,7 +26,7 @@
* @bug 8143628
* @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=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestFloat
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestFloat

View File

@ -26,7 +26,7 @@
* @bug 8143628
* @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=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestInt
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestInt

View File

@ -26,7 +26,7 @@
* @bug 8143628
* @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=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestLong
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestLong

View File

@ -26,7 +26,7 @@
* @bug 8143628
* @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=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestObject
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestObject

View File

@ -26,7 +26,7 @@
* @bug 8143628
* @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=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestShort
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestShort

View File

@ -25,7 +25,7 @@
* @test
* @bug 8158260
* @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
* compiler.unsafe.JdkInternalMiscUnsafeUnalignedAccess

View File

@ -25,7 +25,7 @@
* @test
* @bug 8077504
* @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
* compiler.unsafe.TestUnsafeLoadControl

View File

@ -28,7 +28,8 @@
* @key gc
* @requires vm.gc.G1
* @library /test/lib
* @modules java.base/jdk.internal.misc
* @modules java.base/jdk.internal.misc:open
* @modules java.base/java.lang:open
* java.management
*/

View File

@ -28,7 +28,8 @@
* @key gc
* @requires vm.gc.G1
* @library /test/lib
* @modules java.base/jdk.internal.misc
* @modules java.base/jdk.internal.misc:open
* @modules java.base/java.lang:open
* java.management
*/

View File

@ -28,7 +28,8 @@
* @key gc
* @requires vm.gc.G1
* @library /test/lib
* @modules java.base/jdk.internal.misc
* @modules java.base/jdk.internal.misc:open
* @modules java.base/java.lang:open
* java.management
*/

View File

@ -28,7 +28,8 @@
* @key gc
* @requires vm.gc.G1
* @library /test/lib
* @modules java.base/jdk.internal.misc
* @modules java.base/jdk.internal.misc:open
* @modules java.base/java.lang:open
* java.management
*/

View File

@ -28,7 +28,8 @@
* @key gc
* @requires vm.gc.G1
* @library /test/lib
* @modules java.base/jdk.internal.misc
* @modules java.base/jdk.internal.misc:open
* @modules java.base/java.lang:open
* java.management
*/

View File

@ -28,7 +28,8 @@
* @key gc
* @requires vm.gc.G1
* @library /test/lib
* @modules java.base/jdk.internal.misc
* @modules java.base/jdk.internal.misc:open
* @modules java.base/java.lang:open
* java.management
*/

View File

@ -190,6 +190,7 @@ class TestStringDeduplicationTools {
"-Xmx" + Xmx + "m",
"-XX:+UseG1GC",
"-XX:+UnlockDiagnosticVMOptions",
"--add-opens=java.base/java.lang=ALL-UNNAMED",
"-XX:+VerifyAfterGC" // Always verify after GC
};

View File

@ -28,7 +28,8 @@
* @key gc
* @requires vm.gc.G1
* @library /test/lib
* @modules java.base/jdk.internal.misc
* @modules java.base/jdk.internal.misc:open
* @modules java.base/java.lang:open
* java.management
*/

View File

@ -38,7 +38,8 @@ public class TestGCBasher {
FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/"));
Stream<Path> s = Files.walk(fs.getPath("/"));
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);
Decompiler d = new Decompiler(data);
ClassInfo ci = d.getClassInfo();

View File

@ -39,6 +39,10 @@ public class LocalLongTest {
public static void main(String... args) throws Exception {
if (Platform.is64bit()) {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xint",
"--add-opens",
"java.base/java.lang=ALL-UNNAMED",
"--add-opens",
"java.base/java.lang.invoke=ALL-UNNAMED",
"LocalLongHelper");
OutputAnalyzer o = new OutputAnalyzer(pb.start());
o.shouldHaveExitValue(0);

View File

@ -52,6 +52,8 @@ public class StackTraceLogging {
public static void main(String[] args) throws Exception {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:stacktrace=info",
"-XX:MaxJavaStackTraceDepth=1024",
"--add-opens",
"java.base/java.lang=ALL-UNNAMED",
"TestThrowable");
analyzeOutputOn(pb);
}

View File

@ -25,7 +25,8 @@
* @test
* @bug 8150778
* @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
* @run main/othervm -XX:MaxJavaStackTraceDepth=1024 TestThrowable
*/

View File

@ -25,7 +25,8 @@
* @test
* @bug 8033735
* @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
*/

View File

@ -100,7 +100,7 @@ public class GetSysPkgTest {
ClassFileInstaller.writeClassToDisk("GetSysPkg_package/GetSysClass", klassbuf);
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");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldHaveExitValue(0);

View File

@ -69,7 +69,7 @@ public class CheckRead {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m3")
.exports("p1")
@ -80,9 +80,9 @@ public class CheckRead {
// Packages: p2
// Packages exported: p2 is exported to m1
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.exports("p2", "m1")
.exports("p2", Set.of("m1"))
.build();
// Define module: m3
@ -90,10 +90,10 @@ public class CheckRead {
// Packages: p3
// Packages exported: none
ModuleDescriptor descriptor_m3 =
new ModuleDescriptor.Builder("m3")
ModuleDescriptor.module("m3")
.requires("java.base")
.requires("m2")
.conceals("p3")
.contains("p3")
.build();
// Set up a ModuleFinder containing all modules for this layer.

View File

@ -69,7 +69,7 @@ public class DiffCL_CheckRead {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m3")
.exports("p1")
@ -80,9 +80,9 @@ public class DiffCL_CheckRead {
// Packages: p2
// Packages exported: p2 is exported to m1
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.exports("p2", "m1")
.exports("p2", Set.of("m1"))
.build();
// Define module: m3
@ -90,10 +90,10 @@ public class DiffCL_CheckRead {
// Packages: p3
// Packages exported: none
ModuleDescriptor descriptor_m3 =
new ModuleDescriptor.Builder("m3")
ModuleDescriptor.module("m3")
.requires("java.base")
.requires("m2")
.conceals("p3")
.contains("p3")
.build();
// Set up a ModuleFinder containing all modules for this layer.

View File

@ -70,7 +70,7 @@ public class DiffCL_ExpQualOther {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m2")
.requires("m3")
@ -82,9 +82,9 @@ public class DiffCL_ExpQualOther {
// Packages: p2
// Packages exported: p2 is exported to m3
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.exports("p2", "m3")
.exports("p2", Set.of("m3"))
.build();
// Define module: m3
@ -92,10 +92,10 @@ public class DiffCL_ExpQualOther {
// Packages: p3
// Packages exported: none
ModuleDescriptor descriptor_m3 =
new ModuleDescriptor.Builder("m3")
ModuleDescriptor.module("m3")
.requires("java.base")
.requires("m2")
.conceals("p3")
.contains("p3")
.build();
// Set up a ModuleFinder containing all modules for this layer.

View File

@ -68,7 +68,7 @@ public class DiffCL_ExpQualToM1 {
// Packages: p1
// Packages exported: p1 is exported to unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m2")
.exports("p1")
@ -79,9 +79,9 @@ public class DiffCL_ExpQualToM1 {
// Packages: p2
// Packages exported: package p2 is exported to m1
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.exports("p2", "m1")
.exports("p2", Set.of("m1"))
.build();
// Set up a ModuleFinder containing all modules for this layer.

View File

@ -69,7 +69,7 @@ public class DiffCL_ExpUnqual {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m2")
.exports("p1")
@ -80,7 +80,7 @@ public class DiffCL_ExpUnqual {
// Packages: p2
// Packages exported: package p2 is exported to m1
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.exports("p2")
.build();

View File

@ -68,7 +68,7 @@ public class DiffCL_PkgNotExp {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m2")
.exports("p1")
@ -79,9 +79,9 @@ public class DiffCL_PkgNotExp {
// Packages: p2
// Packages exported: none
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.conceals("p2")
.contains("p2")
.build();
// Set up a ModuleFinder containing all modules for this layer.

View File

@ -80,7 +80,7 @@ public class DiffCL_Umod {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.exports("p1")
.build();
@ -129,7 +129,7 @@ public class DiffCL_Umod {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.exports("p1")
.build();
@ -178,7 +178,7 @@ public class DiffCL_Umod {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.exports("p1")
.build();

View File

@ -75,7 +75,7 @@ public class DiffCL_UmodUpkg {
// Packages: p3
// Packages exported: p3 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.exports("p3")
.build();
@ -124,7 +124,7 @@ public class DiffCL_UmodUpkg {
// Packages: p3
// Packages exported: p3 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.exports("p3")
.build();

View File

@ -70,7 +70,7 @@ public class ExpQualOther {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m2")
.requires("m3")
@ -82,9 +82,9 @@ public class ExpQualOther {
// Packages: p2
// Packages exported: p2 is exported to m3
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.exports("p2", "m3")
.exports("p2", Set.of("m3"))
.build();
// Define module: m3
@ -92,10 +92,10 @@ public class ExpQualOther {
// Packages: p3
// Packages exported: none
ModuleDescriptor descriptor_m3 =
new ModuleDescriptor.Builder("m3")
ModuleDescriptor.module("m3")
.requires("java.base")
.requires("m2")
.conceals("p3")
.contains("p3")
.build();
// Set up a ModuleFinder containing all modules for this layer.

View File

@ -58,7 +58,7 @@ public class ExpQualToM1 {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m2")
.exports("p1")
@ -69,9 +69,9 @@ public class ExpQualToM1 {
// Packages: p2
// Packages exported: p2 is exported qualifiedly to m1
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.exports("p2", "m1")
.exports("p2", Set.of("m1"))
.build();
// Set up a ModuleFinder containing all modules for this layer.

View File

@ -58,7 +58,7 @@ public class ExpUnqual {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m2")
.exports("p1")
@ -69,7 +69,7 @@ public class ExpUnqual {
// Packages: p2
// Packages exported: p2 is exported unqualifiedly
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.exports("p2")
.build();

View File

@ -71,7 +71,7 @@ public class ExportAllUnnamed {
// Packages: none
// Packages exported: none
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m2")
.build();
@ -81,9 +81,9 @@ public class ExportAllUnnamed {
// Packages: p2
// Packages exported: p2 is exported unqualifiedly
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.exports("p2", "m1")
.exports("p2", Set.of("m1"))
.build();
// Set up a ModuleFinder containing all modules for this layer.

View File

@ -68,7 +68,7 @@ public class PkgNotExp {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m2")
.exports("p1")
@ -79,9 +79,9 @@ public class PkgNotExp {
// Packages: p2
// Packages exported: none
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.conceals("p2")
.contains("p2")
.build();
// Set up a ModuleFinder containing all modules for this layer.

View File

@ -80,7 +80,7 @@ public class Umod {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.exports("p1")
.build();
@ -126,7 +126,7 @@ public class Umod {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.exports("p1")
.build();
@ -172,7 +172,7 @@ public class Umod {
// Packages: p1
// Packages exported: p1 is exported unqualifiedly
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.exports("p1")
.build();

View File

@ -70,7 +70,7 @@ public class UmodDiffCL_ExpQualOther {
// Packages: none
// Packages exported: none
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m2")
.build();
@ -80,9 +80,9 @@ public class UmodDiffCL_ExpQualOther {
// Packages: p2
// Packages exported: none
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.exports("p2", "m1")
.exports("p2", Set.of("m1"))
.build();
// Set up a ModuleFinder containing all modules for this layer.

View File

@ -70,7 +70,7 @@ public class UmodDiffCL_ExpUnqual {
// Packages: none
// Packages exported: none
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m2")
.build();
@ -80,7 +80,7 @@ public class UmodDiffCL_ExpUnqual {
// Packages: p2
// Packages exported: none
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.exports("p2")
.build();

View File

@ -69,7 +69,7 @@ public class UmodDiffCL_PkgNotExp {
// Packages: none
// Packages exported: none
ModuleDescriptor descriptor_m1 =
new ModuleDescriptor.Builder("m1")
ModuleDescriptor.module("m1")
.requires("java.base")
.requires("m2")
.build();
@ -79,9 +79,9 @@ public class UmodDiffCL_PkgNotExp {
// Packages: p2
// Packages exported: none
ModuleDescriptor descriptor_m2 =
new ModuleDescriptor.Builder("m2")
ModuleDescriptor.module("m2")
.requires("java.base")
.conceals("p2")
.contains("p2")
.build();
// 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