Merge
This commit is contained in:
commit
a4865ea66a
.hgignore.hgtags.hgtags-top-repo
common
autoconf
boot-jdk.m4build-performance.m4buildjdk-spec.gmk.inconfigure.acflags.m4generated-configure.shhelp.m4jdk-options.m4jdk-version.m4lib-ffi.m4lib-x11.m4platform.m4source-dirs.m4spec.gmk.intoolchain.m4toolchain_windows.m4
bin
conf
corba
hotspot
.hgignore.hgtags
make
src
jdk.vm.ci/share/classes
share/vm
test
MakefileTEST.ROOT
compiler
c2
codegen
escapeAnalysis
intrinsics
bigInteger
unsafe
jsr292
jvmci
compilerToVM
jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test
jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test
rangechecks
runtime
unsafe
GetUnsafeObjectG1PreBarrier.javaJdkInternalMiscUnsafeAccessTestBoolean.javaJdkInternalMiscUnsafeAccessTestByte.javaJdkInternalMiscUnsafeAccessTestChar.javaJdkInternalMiscUnsafeAccessTestDouble.javaJdkInternalMiscUnsafeAccessTestFloat.javaJdkInternalMiscUnsafeAccessTestInt.javaJdkInternalMiscUnsafeAccessTestLong.javaJdkInternalMiscUnsafeAccessTestObject.javaJdkInternalMiscUnsafeAccessTestShort.javaJdkInternalMiscUnsafeUnalignedAccess.javaTestUnsafeLoadControl.java
gc
g1
TestStringDeduplicationAgeThreshold.javaTestStringDeduplicationFullGC.javaTestStringDeduplicationInterned.javaTestStringDeduplicationPrintOptions.javaTestStringDeduplicationTableRehash.javaTestStringDeduplicationTableResize.javaTestStringDeduplicationTools.javaTestStringDeduplicationYoungGC.java
stress/gcbasher
runtime
LocalLong
Throwable
getSysPackage
modules/AccessCheck
@ -3,8 +3,7 @@
|
||||
^.idea/
|
||||
nbproject/private/
|
||||
^webrev
|
||||
^.hgtip
|
||||
^.bridge2
|
||||
^.src-rev$
|
||||
^.jib/
|
||||
.DS_Store
|
||||
.metadata/
|
||||
|
2
.hgtags
2
.hgtags
@ -389,3 +389,5 @@ d62173b931bf5b6bffc6e80a9060bb2e8b8efc75 jdk-9+143
|
||||
31f5023200d42185b70c4c00ba5672391e4642d0 jdk-9+144
|
||||
3ee4e7827413fa5c5c4fca58597b0ad89e921bfb jdk-9+145
|
||||
581331db696a62dd411926ba7fd437252252a71d jdk-9+146
|
||||
f4e854a77aa38749bd90f722b06974a56e7233d5 jdk-9+147
|
||||
5c71ea43933b6c7e8a85eb1a4eb2213011b95d82 jdk-9+148
|
||||
|
@ -389,3 +389,5 @@ f64afae7f1a5608e438585bbf0bc23785e69cba0 jdk-9+141
|
||||
8d337fd6333e28c48aa87880144b840aad82baaf jdk-9+144
|
||||
ff98aa9ec9fae991e426ce5926fc9036d25f5562 jdk-9+145
|
||||
a22e2671d88f6b22a4aa82e3966986542ed2a381 jdk-9+146
|
||||
5f6920274c48eb00d31afee6c034826a754c13d9 jdk-9+147
|
||||
3ffc3e886c74736e387f3685e86b557cdea706c8 jdk-9+148
|
||||
|
@ -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])
|
||||
|
@ -671,6 +671,8 @@ LLVM_LIBS
|
||||
LLVM_LDFLAGS
|
||||
LLVM_CFLAGS
|
||||
LLVM_CONFIG
|
||||
LIBFFI_LIB_FILE
|
||||
ENABLE_LIBFFI_BUNDLING
|
||||
LIBFFI_LIBS
|
||||
LIBFFI_CFLAGS
|
||||
ALSA_LIBS
|
||||
@ -700,8 +702,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 +791,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
|
||||
@ -1215,6 +1210,7 @@ with_alsa_lib
|
||||
with_libffi
|
||||
with_libffi_include
|
||||
with_libffi_lib
|
||||
enable_libffi_bundling
|
||||
with_libjpeg
|
||||
with_giflib
|
||||
with_libpng
|
||||
@ -1974,8 +1970,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]
|
||||
@ -1997,6 +1993,9 @@ Optional Features:
|
||||
disable bundling of the freetype library with the
|
||||
build result [enabled on Windows or when using
|
||||
--with-freetype, disabled otherwise]
|
||||
--enable-libffi-bundling
|
||||
enable bundling of libffi.so to make the built JDK
|
||||
runnable on more systems
|
||||
--enable-jtreg-failure-handler
|
||||
forces build of the jtreg failure handler to be
|
||||
enabled, missing dependencies become fatal errors.
|
||||
@ -3851,7 +3850,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?
|
||||
@ -4178,7 +4177,7 @@ apt_help() {
|
||||
ffi)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libffi-dev" ;;
|
||||
x11)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;;
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;;
|
||||
ccache)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
|
||||
dtrace)
|
||||
@ -4911,7 +4910,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 +4981,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 +5088,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=1481104795
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
@ -15523,7 +15518,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 +15657,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 +24235,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 +24395,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
|
||||
@ -24462,11 +24457,10 @@ $as_echo "$as_me: WARNING: --with-version-opt value has been sanitized from '$wi
|
||||
fi
|
||||
else
|
||||
if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
|
||||
# Default is to calculate a string like this <timestamp>.<username>.<base dir name>
|
||||
timestamp=`$DATE '+%Y-%m-%d-%H%M%S'`
|
||||
# Default is to calculate a string like this 'adhoc.<username>.<base dir name>'
|
||||
# Outer [ ] to quote m4.
|
||||
basedirname=`$BASENAME "$TOPDIR" | $TR -d -c '[a-z][A-Z][0-9].-'`
|
||||
VERSION_OPT="$timestamp.$USERNAME.$basedirname"
|
||||
VERSION_OPT="adhoc.$USERNAME.$basedirname"
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -24769,7 +24763,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 +29881,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 +29904,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 +29932,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 +30042,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 +30070,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 +30180,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 +30208,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 +30318,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 +30346,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 +30456,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 +30484,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 +31192,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 +33578,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 +34877,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 +35265,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 +35275,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 +35333,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 +35342,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 +46960,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 +47082,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 +47206,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 +47216,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 +47242,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 +47252,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 +47267,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 +49860,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 +49869,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 +50160,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 +50169,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 +50683,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 +50692,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 +50983,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 +50992,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 +51863,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 +52529,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 +52550,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 +52598,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 +53119,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 +54468,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 +55827,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
|
||||
@ -62715,6 +62639,11 @@ if test "${with_libffi_lib+set}" = set; then :
|
||||
withval=$with_libffi_lib;
|
||||
fi
|
||||
|
||||
# Check whether --enable-libffi-bundling was given.
|
||||
if test "${enable_libffi_bundling+set}" = set; then :
|
||||
enableval=$enable_libffi_bundling;
|
||||
fi
|
||||
|
||||
|
||||
if test "x$NEEDS_LIB_FFI" = xfalse; then
|
||||
if (test "x${with_libffi}" != x && test "x${with_libffi}" != xno) || \
|
||||
@ -62733,6 +62662,7 @@ $as_echo "$as_me: WARNING: libffi not used, so --with-libffi[-*] is ignored" >&2
|
||||
fi
|
||||
|
||||
if test "x${with_libffi}" != x; then
|
||||
LIBFFI_LIB_PATH="${with_libffi}/lib"
|
||||
LIBFFI_LIBS="-L${with_libffi}/lib -lffi"
|
||||
LIBFFI_CFLAGS="-I${with_libffi}/include"
|
||||
LIBFFI_FOUND=yes
|
||||
@ -62742,6 +62672,7 @@ $as_echo "$as_me: WARNING: libffi not used, so --with-libffi[-*] is ignored" >&2
|
||||
LIBFFI_FOUND=yes
|
||||
fi
|
||||
if test "x${with_libffi_lib}" != x; then
|
||||
LIBFFI_LIB_PATH="${with_libffi_lib}"
|
||||
LIBFFI_LIBS="-L${with_libffi_lib} -lffi"
|
||||
LIBFFI_FOUND=yes
|
||||
fi
|
||||
@ -62951,12 +62882,75 @@ $as_echo "$LIBFFI_WORKS" >&6; }
|
||||
|
||||
as_fn_error $? "Found libffi but could not link and compile with it. $HELP_MSG" "$LINENO" 5
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if libffi should be bundled" >&5
|
||||
$as_echo_n "checking if libffi should be bundled... " >&6; }
|
||||
if test "x$enable_libffi_bundling" = "x"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
ENABLE_LIBFFI_BUNDLING=false
|
||||
elif test "x$enable_libffi_bundling" = "xno"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no, forced" >&5
|
||||
$as_echo "no, forced" >&6; }
|
||||
ENABLE_LIBFFI_BUNDLING=false
|
||||
elif test "x$enable_libffi_bundling" = "xyes"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, forced" >&5
|
||||
$as_echo "yes, forced" >&6; }
|
||||
ENABLE_LIBFFI_BUNDLING=true
|
||||
else
|
||||
as_fn_error $? "Invalid value for --enable-libffi-bundling" "$LINENO" 5
|
||||
fi
|
||||
|
||||
# Find the libffi.so.X to bundle
|
||||
if test "x${ENABLE_LIBFFI_BUNDLING}" = "xtrue"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libffi lib file location" >&5
|
||||
$as_echo_n "checking for libffi lib file location... " >&6; }
|
||||
if test "x${LIBFFI_LIB_PATH}" != x; then
|
||||
if test -e ${LIBFFI_LIB_PATH}/libffi.so.?; then
|
||||
LIBFFI_LIB_FILE="${LIBFFI_LIB_PATH}/libffi.so.?"
|
||||
else
|
||||
as_fn_error $? "Could not locate libffi.so.? for bundling in ${LIBFFI_LIB_PATH}" "$LINENO" 5
|
||||
fi
|
||||
else
|
||||
# If we don't have an explicit path, look in a few obvious places
|
||||
if test "x${OPENJDK_TARGET_CPU}" = "xx86"; then
|
||||
if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then
|
||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?"
|
||||
elif test -e ${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.? ; then
|
||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.?"
|
||||
else
|
||||
as_fn_error $? "Could not locate libffi.so.? for bundling" "$LINENO" 5
|
||||
fi
|
||||
elif test "x${OPENJDK_TARGET_CPU}" = "xx86_64"; then
|
||||
if test -e ${SYSROOT}/usr/lib64/libffi.so.? ; then
|
||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib64/libffi.so.?"
|
||||
elif test -e ${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.? ; then
|
||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.?"
|
||||
else
|
||||
as_fn_error $? "Could not locate libffi.so.? for bundling" "$LINENO" 5
|
||||
fi
|
||||
else
|
||||
# Fallback on the default /usr/lib dir
|
||||
if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then
|
||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?"
|
||||
else
|
||||
as_fn_error $? "Could not locate libffi.so.? for bundling" "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# Make sure the wildcard is evaluated
|
||||
LIBFFI_LIB_FILE="$(ls ${LIBFFI_LIB_FILE})"
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${LIBFFI_LIB_FILE}" >&5
|
||||
$as_echo "${LIBFFI_LIB_FILE}" >&6; }
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if [[ " $JVM_VARIANTS " =~ " zeroshark " ]] ; then
|
||||
# Extract the first word of "llvm-config", so it can be a program name with args.
|
||||
set dummy llvm-config; ac_word=$2
|
||||
@ -65525,6 +65519,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]$'`
|
||||
|
@ -116,7 +116,7 @@ apt_help() {
|
||||
ffi)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libffi-dev" ;;
|
||||
x11)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;;
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;;
|
||||
ccache)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
|
||||
dtrace)
|
||||
|
@ -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])
|
||||
@ -160,11 +160,10 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
||||
fi
|
||||
else
|
||||
if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
|
||||
# Default is to calculate a string like this <timestamp>.<username>.<base dir name>
|
||||
timestamp=`$DATE '+%Y-%m-%d-%H%M%S'`
|
||||
# Default is to calculate a string like this 'adhoc.<username>.<base dir name>'
|
||||
# Outer [ ] to quote m4.
|
||||
[ basedirname=`$BASENAME "$TOPDIR" | $TR -d -c '[a-z][A-Z][0-9].-'` ]
|
||||
VERSION_OPT="$timestamp.$USERNAME.$basedirname"
|
||||
VERSION_OPT="adhoc.$USERNAME.$basedirname"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -35,6 +35,8 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI],
|
||||
[specify directory for the libffi include files])])
|
||||
AC_ARG_WITH(libffi-lib, [AS_HELP_STRING([--with-libffi-lib],
|
||||
[specify directory for the libffi library])])
|
||||
AC_ARG_ENABLE(libffi-bundling, [AS_HELP_STRING([--enable-libffi-bundling],
|
||||
[enable bundling of libffi.so to make the built JDK runnable on more systems])])
|
||||
|
||||
if test "x$NEEDS_LIB_FFI" = xfalse; then
|
||||
if (test "x${with_libffi}" != x && test "x${with_libffi}" != xno) || \
|
||||
@ -52,6 +54,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI],
|
||||
fi
|
||||
|
||||
if test "x${with_libffi}" != x; then
|
||||
LIBFFI_LIB_PATH="${with_libffi}/lib"
|
||||
LIBFFI_LIBS="-L${with_libffi}/lib -lffi"
|
||||
LIBFFI_CFLAGS="-I${with_libffi}/include"
|
||||
LIBFFI_FOUND=yes
|
||||
@ -61,6 +64,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI],
|
||||
LIBFFI_FOUND=yes
|
||||
fi
|
||||
if test "x${with_libffi_lib}" != x; then
|
||||
LIBFFI_LIB_PATH="${with_libffi_lib}"
|
||||
LIBFFI_LIBS="-L${with_libffi_lib} -lffi"
|
||||
LIBFFI_FOUND=yes
|
||||
fi
|
||||
@ -109,8 +113,65 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI],
|
||||
HELP_MSG_MISSING_DEPENDENCY([ffi])
|
||||
AC_MSG_ERROR([Found libffi but could not link and compile with it. $HELP_MSG])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([if libffi should be bundled])
|
||||
if test "x$enable_libffi_bundling" = "x"; then
|
||||
AC_MSG_RESULT([no])
|
||||
ENABLE_LIBFFI_BUNDLING=false
|
||||
elif test "x$enable_libffi_bundling" = "xno"; then
|
||||
AC_MSG_RESULT([no, forced])
|
||||
ENABLE_LIBFFI_BUNDLING=false
|
||||
elif test "x$enable_libffi_bundling" = "xyes"; then
|
||||
AC_MSG_RESULT([yes, forced])
|
||||
ENABLE_LIBFFI_BUNDLING=true
|
||||
else
|
||||
AC_MSG_ERROR([Invalid value for --enable-libffi-bundling])
|
||||
fi
|
||||
|
||||
# Find the libffi.so.X to bundle
|
||||
if test "x${ENABLE_LIBFFI_BUNDLING}" = "xtrue"; then
|
||||
AC_MSG_CHECKING([for libffi lib file location])
|
||||
if test "x${LIBFFI_LIB_PATH}" != x; then
|
||||
if test -e ${LIBFFI_LIB_PATH}/libffi.so.?; then
|
||||
LIBFFI_LIB_FILE="${LIBFFI_LIB_PATH}/libffi.so.?"
|
||||
else
|
||||
AC_MSG_ERROR([Could not locate libffi.so.? for bundling in ${LIBFFI_LIB_PATH}])
|
||||
fi
|
||||
else
|
||||
# If we don't have an explicit path, look in a few obvious places
|
||||
if test "x${OPENJDK_TARGET_CPU}" = "xx86"; then
|
||||
if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then
|
||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?"
|
||||
elif test -e ${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.? ; then
|
||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.?"
|
||||
else
|
||||
AC_MSG_ERROR([Could not locate libffi.so.? for bundling])
|
||||
fi
|
||||
elif test "x${OPENJDK_TARGET_CPU}" = "xx86_64"; then
|
||||
if test -e ${SYSROOT}/usr/lib64/libffi.so.? ; then
|
||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib64/libffi.so.?"
|
||||
elif test -e ${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.? ; then
|
||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.?"
|
||||
else
|
||||
AC_MSG_ERROR([Could not locate libffi.so.? for bundling])
|
||||
fi
|
||||
else
|
||||
# Fallback on the default /usr/lib dir
|
||||
if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then
|
||||
LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?"
|
||||
else
|
||||
AC_MSG_ERROR([Could not locate libffi.so.? for bundling])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# Make sure the wildcard is evaluated
|
||||
LIBFFI_LIB_FILE="$(ls ${LIBFFI_LIB_FILE})"
|
||||
AC_MSG_RESULT([${LIBFFI_LIB_FILE}])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(LIBFFI_CFLAGS)
|
||||
AC_SUBST(LIBFFI_LIBS)
|
||||
AC_SUBST(ENABLE_LIBFFI_BUNDLING)
|
||||
AC_SUBST(LIBFFI_LIB_FILE)
|
||||
])
|
||||
|
@ -42,7 +42,7 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
|
||||
|
||||
if test "x${with_x}" != x && test "x${with_x}" != xyes; then
|
||||
# The user has specified a X11 base directory. Use it for includes and
|
||||
# libraries, unless explicitely overridden.
|
||||
# libraries, unless explicitly overridden.
|
||||
if test "x$x_includes" = xNONE; then
|
||||
x_includes="${with_x}/include"
|
||||
fi
|
||||
|
@ -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
|
||||
|
@ -319,6 +319,8 @@ ALSA_LIBS:=@ALSA_LIBS@
|
||||
ALSA_CFLAGS:=@ALSA_CFLAGS@
|
||||
LIBFFI_LIBS:=@LIBFFI_LIBS@
|
||||
LIBFFI_CFLAGS:=@LIBFFI_CFLAGS@
|
||||
ENABLE_LIBFFI_BUNDLING:=@ENABLE_LIBFFI_BUNDLING@
|
||||
LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@
|
||||
|
||||
PACKAGE_PATH=@PACKAGE_PATH@
|
||||
|
||||
|
@ -53,7 +53,7 @@ TOOLCHAIN_DESCRIPTION_xlc="IBM XL C/C++"
|
||||
# Minimum supported versions, empty means unspecified
|
||||
TOOLCHAIN_MINIMUM_VERSION_clang="3.2"
|
||||
TOOLCHAIN_MINIMUM_VERSION_gcc="4.3"
|
||||
TOOLCHAIN_MINIMUM_VERSION_microsoft=""
|
||||
TOOLCHAIN_MINIMUM_VERSION_microsoft="16.00.30319.01" # VS2010
|
||||
TOOLCHAIN_MINIMUM_VERSION_solstudio="5.13"
|
||||
TOOLCHAIN_MINIMUM_VERSION_xlc=""
|
||||
|
||||
@ -69,15 +69,15 @@ AC_DEFUN([TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS],
|
||||
fi
|
||||
|
||||
# We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal.
|
||||
if [ [[ "[$]$1CC_VERSION_NUMBER" =~ (.*\.){3} ]] ]; then
|
||||
AC_MSG_WARN([C compiler version number has more than three parts (X.Y.Z): [$]$1CC_VERSION_NUMBER. Comparisons might be wrong.])
|
||||
if [ [[ "[$]$1CC_VERSION_NUMBER" =~ (.*\.){4} ]] ]; then
|
||||
AC_MSG_WARN([C compiler version number has more than four parts (W.X.Y.Z): [$]$1CC_VERSION_NUMBER. Comparisons might be wrong.])
|
||||
fi
|
||||
|
||||
if [ [[ "[$]$1CC_VERSION_NUMBER" =~ [0-9]{6} ]] ]; then
|
||||
AC_MSG_WARN([C compiler version number has a part larger than 99999: [$]$1CC_VERSION_NUMBER. Comparisons might be wrong.])
|
||||
fi
|
||||
|
||||
$2COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", [$]1, [$]2, [$]3) }' <<< "[$]$1CC_VERSION_NUMBER"`
|
||||
$2COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "[$]$1CC_VERSION_NUMBER"`
|
||||
])
|
||||
|
||||
# Check if the configured compiler (C and C++) is of a specific version or
|
||||
@ -94,8 +94,8 @@ BASIC_DEFUN_NAMED([TOOLCHAIN_CHECK_COMPILER_VERSION],
|
||||
# Need to assign to a variable since m4 is blocked from modifying parts in [].
|
||||
REFERENCE_VERSION=ARG_VERSION
|
||||
|
||||
if [ [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ]; then
|
||||
AC_MSG_ERROR([Internal error: Cannot compare to ARG_VERSION, only three parts (X.Y.Z) is supported])
|
||||
if [ [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ]; then
|
||||
AC_MSG_ERROR([Internal error: Cannot compare to ARG_VERSION, only four parts (W.X.Y.Z) is supported])
|
||||
fi
|
||||
|
||||
if [ [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ]; then
|
||||
@ -103,7 +103,7 @@ BASIC_DEFUN_NAMED([TOOLCHAIN_CHECK_COMPILER_VERSION],
|
||||
fi
|
||||
|
||||
# Version comparison method inspired by http://stackoverflow.com/a/24067243
|
||||
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", [$]1, [$]2, [$]3) }' <<< "$REFERENCE_VERSION"`
|
||||
COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$REFERENCE_VERSION"`
|
||||
|
||||
if test [$]ARG_PREFIX[COMPARABLE_ACTUAL_VERSION] -ge $COMPARABLE_REFERENCE_VERSION ; then
|
||||
:
|
||||
@ -333,9 +333,11 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
|
||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||
# cc -V output typically looks like
|
||||
# cc: Sun C 5.12 Linux_i386 2011/11/16
|
||||
# or
|
||||
# cc: Studio 12.5 Sun C 5.14 SunOS_sparc 2016/05/31
|
||||
COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1`
|
||||
# Check that this is likely to be the Solaris Studio cc.
|
||||
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.*: Sun $COMPILER_NAME" > /dev/null
|
||||
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.* Sun $COMPILER_NAME" > /dev/null
|
||||
if test $? -ne 0; then
|
||||
ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1`
|
||||
AC_MSG_NOTICE([The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler.])
|
||||
@ -827,7 +829,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
|
||||
BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
|
||||
BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
|
||||
BUILD_AR="$AR"
|
||||
|
||||
|
||||
TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS([], [OPENJDK_BUILD_])
|
||||
fi
|
||||
|
||||
@ -842,36 +844,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
|
||||
AC_SUBST(BUILD_AR)
|
||||
])
|
||||
|
||||
# Setup legacy variables that are still needed as alternative ways to refer to
|
||||
# parts of the toolchain.
|
||||
AC_DEFUN_ONCE([TOOLCHAIN_SETUP_LEGACY],
|
||||
[
|
||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||
# For hotspot, we need these in Windows mixed path,
|
||||
# so rewrite them all. Need added .exe suffix.
|
||||
HOTSPOT_CXX="$CXX.exe"
|
||||
HOTSPOT_LD="$LD.exe"
|
||||
HOTSPOT_MT="$MT.exe"
|
||||
HOTSPOT_RC="$RC.exe"
|
||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH(HOTSPOT_CXX)
|
||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH(HOTSPOT_LD)
|
||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH(HOTSPOT_MT)
|
||||
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH(HOTSPOT_RC)
|
||||
AC_SUBST(HOTSPOT_MT)
|
||||
AC_SUBST(HOTSPOT_RC)
|
||||
else
|
||||
HOTSPOT_CXX="$CXX"
|
||||
HOTSPOT_LD="$LD"
|
||||
fi
|
||||
AC_SUBST(HOTSPOT_CXX)
|
||||
AC_SUBST(HOTSPOT_LD)
|
||||
|
||||
if test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
USE_CLANG=true
|
||||
fi
|
||||
AC_SUBST(USE_CLANG)
|
||||
])
|
||||
|
||||
# Do some additional checks on the detected tools.
|
||||
AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
|
||||
[
|
||||
|
@ -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
|
||||
|
@ -346,6 +346,35 @@ var getJibProfilesProfiles = function (input, common) {
|
||||
// Generate debug profiles for the open jprt profiles
|
||||
profiles = concatObjects(profiles, generateDebugProfiles(common, openOnlyProfiles));
|
||||
|
||||
// Profiles for building the zero jvm variant. These are used for verification
|
||||
// in JPRT.
|
||||
var zeroProfiles = {
|
||||
"linux-x64-zero": {
|
||||
target_os: "linux",
|
||||
target_cpu: "x64",
|
||||
dependencies: concat(common.dependencies, "devkit"),
|
||||
configure_args: concat(common.configure_args,
|
||||
"--with-zlib=system",
|
||||
"--with-jvm-variants=zero",
|
||||
"--enable-libffi-bundling"),
|
||||
default_make_targets: common.default_make_targets
|
||||
},
|
||||
|
||||
"linux-x86-zero": {
|
||||
target_os: "linux",
|
||||
target_cpu: "x86",
|
||||
build_cpu: "x64",
|
||||
dependencies: concat(common.dependencies, "devkit"),
|
||||
configure_args: concat(common.configure_args, common.configure_args_32bit,
|
||||
"--with-zlib=system",
|
||||
"--with-jvm-variants=zero",
|
||||
"--enable-libffi-bundling"),
|
||||
default_make_targets: common.default_make_targets
|
||||
},
|
||||
}
|
||||
profiles = concatObjects(profiles, zeroProfiles);
|
||||
profiles = concatObjects(profiles, generateDebugProfiles(common, zeroProfiles));
|
||||
|
||||
// Profiles used to run tests. Used in JPRT.
|
||||
var testOnlyProfiles = {
|
||||
|
||||
@ -380,7 +409,7 @@ var getJibProfilesDependencies = function (input, common) {
|
||||
+ (input.build_cpu == "x86" ? "i586" : input.build_cpu);
|
||||
|
||||
var devkit_platform_revisions = {
|
||||
linux_x64: "gcc4.9.2-OEL6.4+1.0",
|
||||
linux_x64: "gcc4.9.2-OEL6.4+1.1",
|
||||
macosx_x64: "Xcode6.3-MacOSX10.9+1.0",
|
||||
solaris_x64: "SS12u4-Solaris11u1+1.0",
|
||||
solaris_sparcv9: "SS12u4-Solaris11u1+1.0",
|
||||
@ -427,7 +456,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",
|
||||
|
@ -2,5 +2,4 @@
|
||||
^dist/
|
||||
^webrev
|
||||
/nbproject/private/
|
||||
^.hgtip
|
||||
.DS_Store
|
||||
|
@ -389,3 +389,5 @@ b32f998da32b488ec7c4e9dbb3c750841b48e74d jdk-9+141
|
||||
d4f1dae174098e799c48948e866054c52e11a186 jdk-9+144
|
||||
a44b156ae7f06bf41b9bece30df7775e482395dd jdk-9+145
|
||||
ecd74b41ab65bf228837b5bdf99690638d55425c jdk-9+146
|
||||
dc49e0922a8e4387cbf8670bbe1dc51c9874b74b jdk-9+147
|
||||
f95cc86b6ac22ec1ade5d4f825dc7782adeea228 jdk-9+148
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -26,9 +26,10 @@
|
||||
/**
|
||||
* Defines the Java binding of the OMG CORBA APIs, and the RMI-IIOP API.
|
||||
*/
|
||||
@Deprecated(since="9", forRemoval=true)
|
||||
module java.corba {
|
||||
requires public java.desktop;
|
||||
requires public java.rmi;
|
||||
requires transitive java.desktop;
|
||||
requires transitive java.rmi;
|
||||
requires java.logging;
|
||||
requires java.naming;
|
||||
requires java.transaction;
|
||||
@ -65,14 +66,13 @@ module java.corba {
|
||||
exports org.omg.PortableServer.portable;
|
||||
exports org.omg.SendingContext;
|
||||
exports org.omg.stub.java.rmi;
|
||||
exports com.sun.corba.se.impl.util to
|
||||
jdk.rmic;
|
||||
exports com.sun.jndi.cosnaming to
|
||||
java.naming;
|
||||
exports com.sun.jndi.url.corbaname to
|
||||
java.naming;
|
||||
exports com.sun.jndi.url.iiop to
|
||||
java.naming;
|
||||
exports com.sun.jndi.url.iiopname to
|
||||
java.naming;
|
||||
|
||||
// rmic --iiop
|
||||
exports com.sun.corba.se.impl.util to jdk.rmic;
|
||||
|
||||
// JNDI CosNaming provider
|
||||
opens com.sun.jndi.cosnaming to java.naming; // jndiprovider.properties
|
||||
exports com.sun.jndi.url.corbaname to java.naming;
|
||||
exports com.sun.jndi.url.iiop to java.naming;
|
||||
exports com.sun.jndi.url.iiopname to java.naming;
|
||||
}
|
||||
|
@ -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,5 @@ d87d5d430c42342f0320ca7f5cbe0cbd1f9d62ba jdk-9+143
|
||||
6187b582d02aee38341dc8ce4011906e9b364e9f jdk-9+144
|
||||
61e7ea56312351657e69198c503a6f7bf865af83 jdk-9+145
|
||||
a82cb5350cad96a0b4de496afebe3ded89f27efa jdk-9+146
|
||||
132a72c782071cc11ab25cc7c9ee167c3632fea4 jdk-9+147
|
||||
5e4e893520ecdbd517c6ed6375f0885664fe62c4 jdk-9+148
|
||||
|
@ -65,3 +65,17 @@ $(INCLUDE_DST_DIR)/$(JNI_MD_SUBDIR)/jni_md.h: $(JNI_MD_H_SRC)
|
||||
#TARGETS += $(INCLUDE_DST_DIR)/$(JNI_MD_SUBDIR)/jni_md.h
|
||||
|
||||
################################################################################
|
||||
# Optionally copy libffi.so.? into the the image
|
||||
|
||||
ifeq ($(ENABLE_LIBFFI_BUNDLING), true)
|
||||
$(eval $(call SetupCopyFiles, COPY_LIBFFI, \
|
||||
FILES := $(LIBFFI_LIB_FILE), \
|
||||
DEST := $(call FindLibDirForModule, $(MODULE)), \
|
||||
FLATTEN := true, \
|
||||
MACRO := install-file-nolink, \
|
||||
))
|
||||
|
||||
TARGETS += $(COPY_LIBFFI)
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
|
@ -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"
|
||||
@ -2383,18 +2384,17 @@ Klass* InstanceKlass::compute_enclosing_class_impl(instanceKlassHandle self,
|
||||
|
||||
// Only boot and platform class loaders can define classes in "java/" packages.
|
||||
void InstanceKlass::check_prohibited_package(Symbol* class_name,
|
||||
Handle class_loader,
|
||||
TRAPS) {
|
||||
const char* javapkg = "java/";
|
||||
Handle class_loader,
|
||||
TRAPS) {
|
||||
ResourceMark rm(THREAD);
|
||||
if (!class_loader.is_null() &&
|
||||
!SystemDictionary::is_platform_class_loader(class_loader) &&
|
||||
class_name != NULL &&
|
||||
strncmp(class_name->as_C_string(), javapkg, strlen(javapkg)) == 0) {
|
||||
strncmp(class_name->as_C_string(), JAVAPKG, JAVAPKG_LEN) == 0) {
|
||||
TempNewSymbol pkg_name = InstanceKlass::package_from_name(class_name, CHECK);
|
||||
assert(pkg_name != NULL, "Error in parsing package name starting with 'java/'");
|
||||
char* name = pkg_name->as_C_string();
|
||||
const char* class_loader_name = InstanceKlass::cast(class_loader()->klass())->name()->as_C_string();
|
||||
const char* class_loader_name = SystemDictionary::loader_name(class_loader());
|
||||
StringUtils::replace_no_expand(name, "/", ".");
|
||||
const char* msg_text1 = "Class loader (instance of): ";
|
||||
const char* msg_text2 = " tried to load prohibited package name: ";
|
||||
|
@ -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);
|
||||
|
@ -4,7 +4,9 @@
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
@ -22,262 +24,59 @@
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile to run various hotspot tests
|
||||
#
|
||||
NATIVE_TEST_PATH := hotspot/jtreg/native
|
||||
|
||||
ALT_MAKE ?= closed
|
||||
TREAT_EXIT_CODE_1_AS_0 := true
|
||||
|
||||
GETMIXEDPATH=echo
|
||||
CLEAN_BEFORE_PREP := true
|
||||
|
||||
# Utilities used
|
||||
AWK = awk
|
||||
CAT = cat
|
||||
CD = cd
|
||||
CHMOD = chmod
|
||||
CP = cp
|
||||
CUT = cut
|
||||
DIRNAME = dirname
|
||||
ECHO = echo
|
||||
EGREP = egrep
|
||||
EXPAND = expand
|
||||
FIND = find
|
||||
MKDIR = mkdir
|
||||
PWD = pwd
|
||||
SED = sed
|
||||
SORT = sort
|
||||
TEE = tee
|
||||
UNAME = uname
|
||||
UNIQ = uniq
|
||||
WC = wc
|
||||
ZIPEXE = zip
|
||||
USE_JTREG_VERSION := 4.1
|
||||
|
||||
define NEWLINE
|
||||
USE_JTREG_ASSERT := false
|
||||
|
||||
LIMIT_JTREG_VM_MEMORY := false
|
||||
|
||||
endef
|
||||
IGNORE_MARKED_TESTS := true
|
||||
|
||||
# Get OS name from uname (Cygwin inexplicably adds _NT-5.1)
|
||||
UNAME_S := $(shell $(UNAME) -s | $(CUT) -f1 -d_)
|
||||
UNAME_S := $(shell uname -s | cut -f1 -d_)
|
||||
|
||||
ifeq ($(UNAME_S), SunOS)
|
||||
PLATFORM = solaris
|
||||
SLASH_JAVA = /java
|
||||
ARCH = $(shell uname -p)
|
||||
ifeq ($(ARCH), i386)
|
||||
ARCH=i586
|
||||
endif
|
||||
NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | grep -c on-line)
|
||||
endif
|
||||
ifeq ($(UNAME_S), Linux)
|
||||
PLATFORM = linux
|
||||
SLASH_JAVA = /java
|
||||
ARCH = $(shell uname -m)
|
||||
ifeq ($(ARCH), i386)
|
||||
ARCH = i586
|
||||
endif
|
||||
NUM_CORES := $(shell cat /proc/cpuinfo | grep -c processor)
|
||||
endif
|
||||
ifeq ($(UNAME_S), Darwin)
|
||||
PLATFORM = bsd
|
||||
SLASH_JAVA = /java
|
||||
ARCH = $(shell uname -m)
|
||||
ifeq ($(ARCH), i386)
|
||||
ARCH = i586
|
||||
endif
|
||||
NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu)
|
||||
endif
|
||||
ifeq ($(findstring BSD,$(UNAME_S)), BSD)
|
||||
PLATFORM = bsd
|
||||
SLASH_JAVA = /java
|
||||
ARCH = $(shell uname -m)
|
||||
ifeq ($(ARCH), i386)
|
||||
ARCH = i586
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),)
|
||||
# detect whether we're running in MKS or cygwin
|
||||
ifeq ($(UNAME_S), Windows_NT) # MKS
|
||||
GETMIXEDPATH=dosname -s
|
||||
endif
|
||||
ifeq ($(findstring CYGWIN,$(UNAME_S)), CYGWIN)
|
||||
GETMIXEDPATH=cygpath -m
|
||||
endif
|
||||
PLATFORM = windows
|
||||
SLASH_JAVA = J:
|
||||
ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64)
|
||||
ARCH = ia64
|
||||
else
|
||||
ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64)
|
||||
ARCH = x64
|
||||
else
|
||||
ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T)
|
||||
ARCH = x64
|
||||
else
|
||||
ARCH = i586
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
EXESUFFIX = .exe
|
||||
ifeq ($(findstring CYGWIN,$(UNAME_S)), CYGWIN)
|
||||
ifneq ($(NUMBER_OF_PROCESSORS), )
|
||||
NUM_CORES := $(NUMBER_OF_PROCESSORS)
|
||||
else
|
||||
ifneq ($(HOTSPOT_BUILD_JOBS), )
|
||||
NUM_CORES := $(HOTSPOT_BUILD_JOBS)
|
||||
else
|
||||
NUM_CORES := 1 # fallback
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef ALT_SLASH_JAVA
|
||||
SLASH_JAVA = $(ALT_SLASH_JAVA)
|
||||
# Concurrency based on min(cores / 2, 12)
|
||||
CONCURRENCY := $(shell expr $(NUM_CORES) / 2)
|
||||
ifeq ($(CONCURRENCY), 0)
|
||||
CONCURRENCY := 1
|
||||
else ifeq ($(shell expr $(CONCURRENCY) \> 12), 1)
|
||||
CONCURRENCY := 12
|
||||
endif
|
||||
|
||||
# Root of this test area (important to use full paths in some places)
|
||||
TEST_ROOT := $(shell pwd)
|
||||
# Make sure MaxRAMFraction is high enough to not cause OOM or swapping since we may end up with a lot of JVM's
|
||||
JTREG_BASIC_OPTIONS += -vmoption:-XX:MaxRAMFraction=$(shell expr $(CONCURRENCY) \* 4)
|
||||
|
||||
# Root of all test results
|
||||
ifdef TEST_OUTPUT_DIR
|
||||
$(shell $(MKDIR) -p $(TEST_OUTPUT_DIR)/jtreg)
|
||||
ABS_TEST_OUTPUT_DIR := \
|
||||
$(shell $(CD) $(TEST_OUTPUT_DIR)/jtreg && $(PWD))
|
||||
else
|
||||
ifdef ALT_OUTPUTDIR
|
||||
ABS_OUTPUTDIR = $(shell $(CD) $(ALT_OUTPUTDIR) && $(PWD))
|
||||
else
|
||||
ABS_OUTPUTDIR = $(shell $(CD) $(TEST_ROOT)/.. && $(PWD))
|
||||
endif
|
||||
|
||||
ABS_PLATFORM_BUILD_ROOT = $(ABS_OUTPUTDIR)
|
||||
ABS_TEST_OUTPUT_DIR := $(ABS_PLATFORM_BUILD_ROOT)/testoutput/$(UNIQUE_DIR)
|
||||
endif
|
||||
|
||||
# Expect JPRT to set PRODUCT_HOME (the product or jdk in this case to test)
|
||||
ifndef PRODUCT_HOME
|
||||
# Try to use images/jdk if it exists
|
||||
ABS_JDK_IMAGE = $(ABS_PLATFORM_BUILD_ROOT)/images/jdk
|
||||
PRODUCT_HOME := \
|
||||
$(shell \
|
||||
if [ -d $(ABS_JDK_IMAGE) ] ; then \
|
||||
$(ECHO) "$(ABS_JDK_IMAGE)"; \
|
||||
else \
|
||||
$(ECHO) "$(ABS_PLATFORM_BUILD_ROOT)"; \
|
||||
fi)
|
||||
PRODUCT_HOME := $(PRODUCT_HOME)
|
||||
endif
|
||||
|
||||
# Expect JPRT to set JAVA_ARGS (e.g. -server etc.)
|
||||
JAVA_OPTIONS =
|
||||
ifdef JAVA_ARGS
|
||||
JAVA_OPTIONS = $(JAVA_ARGS)
|
||||
endif
|
||||
|
||||
# jtreg -nativepath <dir>
|
||||
#
|
||||
# Local make tests will be TEST_IMAGE_DIR and JPRT with jprt.use.reg.test.bundle=true
|
||||
# should be JPRT_TESTNATIVE_PATH
|
||||
ifdef TEST_IMAGE_DIR
|
||||
TESTNATIVE_DIR = $(TEST_IMAGE_DIR)
|
||||
else ifdef JPRT_TESTNATIVE_PATH
|
||||
TESTNATIVE_DIR = $(JPRT_TESTNATIVE_PATH)
|
||||
endif
|
||||
ifdef TESTNATIVE_DIR
|
||||
JTREG_NATIVE_PATH = -nativepath:$(shell $(GETMIXEDPATH) "$(TESTNATIVE_DIR)/hotspot/jtreg/native")
|
||||
endif
|
||||
|
||||
# jtreg failure handler config
|
||||
ifeq ($(FAILURE_HANDLER_DIR), )
|
||||
ifneq ($(TESTNATIVE_DIR), )
|
||||
FAILURE_HANDLER_DIR := $(TESTNATIVE_DIR)/failure_handler
|
||||
endif
|
||||
endif
|
||||
ifneq ($(FAILURE_HANDLER_DIR), )
|
||||
FAILURE_HANDLER_DIR_MIXED := $(shell $(GETMIXEDPATH) "$(FAILURE_HANDLER_DIR)")
|
||||
JTREG_FAILURE_HANDLER_OPTIONS := \
|
||||
-timeoutHandlerDir:$(FAILURE_HANDLER_DIR_MIXED)/jtregFailureHandler.jar \
|
||||
-observerDir:$(FAILURE_HANDLER_DIR_MIXED)/jtregFailureHandler.jar \
|
||||
-timeoutHandler:jdk.test.failurehandler.jtreg.GatherProcessInfoTimeoutHandler \
|
||||
-observer:jdk.test.failurehandler.jtreg.GatherDiagnosticInfoObserver \
|
||||
-timeoutHandlerTimeout:0
|
||||
ifeq ($(PLATFORM), windows)
|
||||
JTREG_FAILURE_HANDLER_OPTIONS += -J-Djava.library.path="$(FAILURE_HANDLER_DIR_MIXED)"
|
||||
endif
|
||||
endif
|
||||
|
||||
# Expect JPRT to set JPRT_ARCHIVE_BUNDLE (path to zip bundle for results)
|
||||
ARCHIVE_BUNDLE = $(ABS_TEST_OUTPUT_DIR)/ARCHIVE_BUNDLE.zip
|
||||
ifdef JPRT_ARCHIVE_BUNDLE
|
||||
ARCHIVE_BUNDLE = $(JPRT_ARCHIVE_BUNDLE)
|
||||
endif
|
||||
|
||||
# How to create the test bundle (pass or fail, we want to create this)
|
||||
# Follow command with ";$(BUNDLE_UP_AND_EXIT)", so it always gets executed.
|
||||
ZIP_UP_RESULTS = ( $(MKDIR) -p `$(DIRNAME) $(ARCHIVE_BUNDLE)` \
|
||||
&& $(CD) $(ABS_TEST_OUTPUT_DIR) \
|
||||
&& $(CHMOD) -R a+r . \
|
||||
&& $(ZIPEXE) -q -r $(ARCHIVE_BUNDLE) . )
|
||||
|
||||
# important results files
|
||||
SUMMARY_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTreport/text/summary.txt")
|
||||
STATS_TXT_NAME = Stats.txt
|
||||
STATS_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/$(STATS_TXT_NAME)")
|
||||
RUNLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/runlist.txt")
|
||||
PASSLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/passlist.txt")
|
||||
FAILLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/faillist.txt")
|
||||
EXITCODE = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/exitcode.txt")
|
||||
|
||||
TESTEXIT = \
|
||||
if [ ! -s $(EXITCODE) ] ; then \
|
||||
$(ECHO) "ERROR: EXITCODE file not filled in."; \
|
||||
$(ECHO) "1" > $(EXITCODE); \
|
||||
fi ; \
|
||||
testExitCode=`$(CAT) $(EXITCODE)`; \
|
||||
$(ECHO) "EXIT CODE: $${testExitCode}"; \
|
||||
exit $${testExitCode}
|
||||
|
||||
BUNDLE_UP_AND_EXIT = \
|
||||
( \
|
||||
jtregExitCode=$$? && \
|
||||
_summary="$(SUMMARY_TXT)"; \
|
||||
if [ $${jtregExitCode} = 1 ] ; then \
|
||||
jtregExitCode=0; \
|
||||
fi; \
|
||||
$(RM) -f $(STATS_TXT) $(RUNLIST) $(PASSLIST) $(FAILLIST) $(EXITCODE); \
|
||||
$(ECHO) "$${jtregExitCode}" > $(EXITCODE); \
|
||||
if [ -r "$${_summary}" ] ; then \
|
||||
$(ECHO) "Summary: $(UNIQUE_DIR)" > $(STATS_TXT); \
|
||||
$(EXPAND) $${_summary} | $(EGREP) -v ' Not run\.' > $(RUNLIST); \
|
||||
$(EGREP) ' Passed\.' $(RUNLIST) \
|
||||
| $(EGREP) -v ' Error\.' \
|
||||
| $(EGREP) -v ' Failed\.' > $(PASSLIST); \
|
||||
( $(EGREP) ' Failed\.' $(RUNLIST); \
|
||||
$(EGREP) ' Error\.' $(RUNLIST); \
|
||||
$(EGREP) -v ' Passed\.' $(RUNLIST) ) \
|
||||
| $(SORT) | $(UNIQ) > $(FAILLIST); \
|
||||
if [ $${jtregExitCode} != 0 -o -s $(FAILLIST) ] ; then \
|
||||
$(EXPAND) $(FAILLIST) \
|
||||
| $(CUT) -d' ' -f1 \
|
||||
| $(SED) -e 's@^@FAILED: @' >> $(STATS_TXT); \
|
||||
if [ $${jtregExitCode} = 0 ] ; then \
|
||||
jtregExitCode=1; \
|
||||
fi; \
|
||||
fi; \
|
||||
runc="`$(CAT) $(RUNLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \
|
||||
passc="`$(CAT) $(PASSLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \
|
||||
failc="`$(CAT) $(FAILLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \
|
||||
exclc="FIXME CODETOOLS-7900176"; \
|
||||
$(ECHO) "TEST STATS: name=$(UNIQUE_DIR) run=$${runc} pass=$${passc} fail=$${failc}" \
|
||||
>> $(STATS_TXT); \
|
||||
else \
|
||||
$(ECHO) "Missing file: $${_summary}" >> $(STATS_TXT); \
|
||||
fi; \
|
||||
if [ -f $(STATS_TXT) ] ; then \
|
||||
$(CAT) $(STATS_TXT); \
|
||||
fi; \
|
||||
$(ZIP_UP_RESULTS) ; \
|
||||
$(TESTEXIT) \
|
||||
)
|
||||
# Include the common base file with most of the logic
|
||||
include ../../test/TestCommon.gmk
|
||||
|
||||
################################################################
|
||||
|
||||
# Default make rule (runs jtreg_tests)
|
||||
all: hotspot_all
|
||||
@$(ECHO) "Testing completed successfully"
|
||||
@ -292,106 +91,10 @@ hotspot_%:
|
||||
hotspot_internal:
|
||||
$(ALT_OUTPUTDIR)/jdk/bin/java -XX:+ExecuteInternalVMTests -XX:+ShowMessageBoxOnError -version
|
||||
|
||||
# Prep for output
|
||||
prep: clean
|
||||
@$(MKDIR) -p $(ABS_TEST_OUTPUT_DIR)
|
||||
@$(MKDIR) -p `dirname $(ARCHIVE_BUNDLE)`
|
||||
|
||||
# Cleanup
|
||||
clean:
|
||||
@$(RM) -r $(ABS_TEST_OUTPUT_DIR)
|
||||
@$(RM) $(ARCHIVE_BUNDLE)
|
||||
|
||||
################################################################
|
||||
|
||||
# jtreg tests
|
||||
|
||||
# Expect JT_HOME to be set for jtreg tests. (home for jtreg)
|
||||
ifndef JT_HOME
|
||||
JT_HOME = $(SLASH_JAVA)/re/jtreg/4.1/promoted/latest/binaries/jtreg
|
||||
ifdef JPRT_JTREG_HOME
|
||||
JT_HOME = $(JPRT_JTREG_HOME)
|
||||
endif
|
||||
endif
|
||||
|
||||
# When called from JPRT the TESTDIRS variable is set to the jtreg tests to run
|
||||
ifdef TESTDIRS
|
||||
TEST_SELECTION = $(TESTDIRS)
|
||||
endif
|
||||
|
||||
# Concurrency based on min(cores / 2, 12)
|
||||
ifdef NUM_CORES
|
||||
CONCURRENCY := $(shell expr $(NUM_CORES) / 2)
|
||||
ifeq ($(CONCURRENCY), 0)
|
||||
CONCURRENCY := 1
|
||||
else ifeq ($(shell expr $(CONCURRENCY) \> 12), 1)
|
||||
CONCURRENCY := 12
|
||||
endif
|
||||
else
|
||||
CONCURRENCY := 1
|
||||
endif
|
||||
JTREG_BASIC_OPTIONS += -concurrency:$(CONCURRENCY)
|
||||
|
||||
# Make sure MaxRAMFraction is high enough to not cause OOM or swapping since we may end up with a lot of JVM's
|
||||
JTREG_BASIC_OPTIONS += -vmoption:-XX:MaxRAMFraction=$(shell expr $(CONCURRENCY) \* 4)
|
||||
|
||||
ifdef EXTRA_JTREG_OPTIONS
|
||||
JTREG_BASIC_OPTIONS += $(EXTRA_JTREG_OPTIONS)
|
||||
endif
|
||||
|
||||
# Default JTREG to run
|
||||
JTREG = $(JT_HOME)/bin/jtreg
|
||||
|
||||
# Use agent mode
|
||||
JTREG_BASIC_OPTIONS += -agentvm
|
||||
# Only run automatic tests
|
||||
JTREG_BASIC_OPTIONS += -a
|
||||
# Report details on all failed or error tests, times too
|
||||
JTREG_BASIC_OPTIONS += -v:fail,error,time
|
||||
# Retain all files for failing tests
|
||||
JTREG_BASIC_OPTIONS += -retain:fail,error
|
||||
# Ignore tests are not run and completely silent about it
|
||||
JTREG_IGNORE_OPTION = -ignore:quiet
|
||||
JTREG_BASIC_OPTIONS += $(JTREG_IGNORE_OPTION)
|
||||
# Multiply by 4 the timeout factor
|
||||
JTREG_TIMEOUT_OPTION = -timeoutFactor:4
|
||||
JTREG_BASIC_OPTIONS += $(JTREG_TIMEOUT_OPTION)
|
||||
# Set other vm and test options
|
||||
JTREG_TEST_OPTIONS = $(JAVA_ARGS:%=-javaoptions:%) $(JAVA_OPTIONS:%=-vmoption:%) $(JAVA_VM_ARGS:%=-vmoption:%)
|
||||
|
||||
# Option to tell jtreg to not run tests marked with "ignore"
|
||||
ifeq ($(PLATFORM), windows)
|
||||
JTREG_KEY_OPTION = -k:!ignore
|
||||
else
|
||||
JTREG_KEY_OPTION = -k:\!ignore
|
||||
endif
|
||||
JTREG_BASIC_OPTIONS += $(JTREG_KEY_OPTION)
|
||||
|
||||
ALT_MAKE ?= closed
|
||||
-include $(ALT_MAKE)/Makefile
|
||||
|
||||
# Make sure jtreg exists
|
||||
$(JTREG): $(JT_HOME)
|
||||
|
||||
jtreg_tests: prep $(PRODUCT_HOME) $(JTREG)
|
||||
( \
|
||||
( JT_HOME=$(shell $(GETMIXEDPATH) "$(JT_HOME)"); \
|
||||
export JT_HOME; \
|
||||
$(shell $(GETMIXEDPATH) "$(JTREG)") \
|
||||
$(JTREG_BASIC_OPTIONS) \
|
||||
-r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTreport") \
|
||||
-w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTwork") \
|
||||
-jdk:$(shell $(GETMIXEDPATH) "$(PRODUCT_HOME)") \
|
||||
$(JTREG_NATIVE_PATH) \
|
||||
$(JTREG_FAILURE_HANDLER_OPTIONS) \
|
||||
$(JTREG_EXCLUSIONS) \
|
||||
$(JTREG_TEST_OPTIONS) \
|
||||
$(TEST_SELECTION) \
|
||||
) ; \
|
||||
$(BUNDLE_UP_AND_EXIT) \
|
||||
) 2>&1 | $(TEE) $(ABS_TEST_OUTPUT_DIR)/output.txt ; $(TESTEXIT)
|
||||
|
||||
PHONY_LIST += jtreg_tests
|
||||
|
||||
# flags used to execute java in test targets
|
||||
TEST_FLAGS += -version -Xinternalversion -X -help
|
||||
|
||||
@ -471,6 +174,12 @@ PHONY_LIST += hotspot_servertest servertest
|
||||
|
||||
# Run the native gtest tests from the test image
|
||||
|
||||
define NEWLINE
|
||||
|
||||
|
||||
endef
|
||||
|
||||
|
||||
hotspot_gtest:
|
||||
$(foreach v, $(JVM_VARIANTS), \
|
||||
$(MAKE) hotspot_gtest$v $(NEWLINE) )
|
||||
@ -481,9 +190,3 @@ hotspot_gtestserver hotspot_gtestclient hotspot_gtestminimal: hotspot_gtest%:
|
||||
|
||||
PHONY_LIST += hotspot_gtest hotspot_gtestserver hotspot_gtestclient \
|
||||
hotspot_gtestminimal
|
||||
|
||||
################################################################
|
||||
# Phony targets (e.g. these are not filenames)
|
||||
.PHONY: all clean prep $(PHONY_LIST)
|
||||
|
||||
################################################################
|
||||
|
@ -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
|
||||
*/
|
||||
|
4
hotspot/test/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/RedefineClassTest.java
4
hotspot/test/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/RedefineClassTest.java
@ -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();
|
||||
|
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