Merge
This commit is contained in:
commit
bcd742e1e6
@ -3,8 +3,7 @@
|
||||
^.idea/
|
||||
nbproject/private/
|
||||
^webrev
|
||||
^.hgtip
|
||||
^.bridge2
|
||||
^.src-rev$
|
||||
^.jib/
|
||||
.DS_Store
|
||||
.metadata/
|
||||
|
@ -389,3 +389,4 @@ f64afae7f1a5608e438585bbf0bc23785e69cba0 jdk-9+141
|
||||
8d337fd6333e28c48aa87880144b840aad82baaf jdk-9+144
|
||||
ff98aa9ec9fae991e426ce5926fc9036d25f5562 jdk-9+145
|
||||
a22e2671d88f6b22a4aa82e3966986542ed2a381 jdk-9+146
|
||||
5f6920274c48eb00d31afee6c034826a754c13d9 jdk-9+147
|
||||
|
@ -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
|
||||
|
||||
|
@ -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]$'`]
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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])
|
||||
|
@ -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]$'`
|
||||
|
@ -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)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
|
@ -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])
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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.])
|
||||
@ -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],
|
||||
[
|
||||
|
@ -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])
|
||||
|
@ -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
|
||||
|
@ -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",
|
||||
|
@ -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
|
||||
|
@ -549,3 +549,4 @@ d87d5d430c42342f0320ca7f5cbe0cbd1f9d62ba jdk-9+143
|
||||
6187b582d02aee38341dc8ce4011906e9b364e9f jdk-9+144
|
||||
61e7ea56312351657e69198c503a6f7bf865af83 jdk-9+145
|
||||
a82cb5350cad96a0b4de496afebe3ded89f27efa jdk-9+146
|
||||
132a72c782071cc11ab25cc7c9ee167c3632fea4 jdk-9+147
|
||||
|
@ -190,8 +190,6 @@ JVM_AddModuleExportsToAll
|
||||
JVM_AddModuleExportsToAllUnnamed
|
||||
JVM_AddModulePackage
|
||||
JVM_AddReadsModule
|
||||
JVM_CanReadModule
|
||||
JVM_DefineModule
|
||||
JVM_IsExportedToModule
|
||||
JVM_SetBootLoaderUnnamedModule
|
||||
JVM_GetModuleByPackageName
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -36,6 +36,8 @@
|
||||
#include "utilities/ostream.hpp"
|
||||
|
||||
#define UNNAMED_MODULE "Unnamed Module"
|
||||
#define JAVAPKG "java/"
|
||||
#define JAVAPKG_LEN 5
|
||||
|
||||
class ModuleClosure;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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") \
|
||||
|
@ -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"
|
||||
@ -2385,16 +2386,15 @@ Klass* InstanceKlass::compute_enclosing_class_impl(instanceKlassHandle self,
|
||||
void InstanceKlass::check_prohibited_package(Symbol* class_name,
|
||||
Handle class_loader,
|
||||
TRAPS) {
|
||||
const char* javapkg = "java/";
|
||||
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: ";
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
@ -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 */
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
//
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;",
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
*/
|
||||
|
||||
|
@ -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
|
||||
*/
|
||||
|
||||
|
@ -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
|
||||
*/
|
||||
|
||||
|
@ -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
|
||||
*/
|
||||
|
||||
|
@ -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
|
||||
*/
|
||||
|
||||
|
@ -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
|
||||
*/
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
*/
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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
|
||||
*/
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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();
|
||||
|
@ -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.
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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();
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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();
|
||||
|
@ -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.
|
||||
|
@ -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();
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user