This commit is contained in:
David Dehaven 2017-02-27 18:07:28 -08:00
commit b749c2a154
11 changed files with 309 additions and 64 deletions

View File

@ -400,3 +400,4 @@ ef056360ddf3977d7d2ddbeb456a4d612d19ea05 jdk-9+152
688a3863c00ebc089ab17ee1fc46272cbbd96815 jdk-9+155
783ec7542cf7154e5d2b87f55bb97d28f81e9ada jdk-9+156
4eb77fb98952dc477a4229575c81d2263a9ce711 jdk-9+157
a4087bc10a88a43ea3ad0919b5b4af1c86977221 jdk-9+158

View File

@ -5043,7 +5043,7 @@ TOOLCHAIN_MINIMUM_VERSION_xlc=""
#
# $1 = compiler to test (CC or CXX)
# $2 = human readable name of compiler (C or C++)
# $3 = list of compiler names to search for
# $3 = compiler name to search for
# Detect the core components of the toolchain, i.e. the compilers (CC and CXX),
@ -5170,7 +5170,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=1487781359
DATE_WHEN_GENERATED=1487934085
###############################################################################
#
@ -33138,10 +33138,9 @@ done
if test -n "$TOOLCHAIN_PATH"; then
PATH_save="$PATH"
PATH="$TOOLCHAIN_PATH"
for ac_prog in $SEARCH_LIST
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}$SEARCH_LIST", so it can be a program name with args.
set dummy ${ac_tool_prefix}$SEARCH_LIST; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_TOOLCHAIN_PATH_CC+:} false; then :
@ -33180,20 +33179,73 @@ $as_echo "no" >&6; }
fi
test -n "$TOOLCHAIN_PATH_CC" && break
fi
if test -z "$ac_cv_path_TOOLCHAIN_PATH_CC"; then
ac_pt_TOOLCHAIN_PATH_CC=$TOOLCHAIN_PATH_CC
# Extract the first word of "$SEARCH_LIST", so it can be a program name with args.
set dummy $SEARCH_LIST; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_ac_pt_TOOLCHAIN_PATH_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
case $ac_pt_TOOLCHAIN_PATH_CC in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_TOOLCHAIN_PATH_CC="$ac_pt_TOOLCHAIN_PATH_CC" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_TOOLCHAIN_PATH_CC="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
ac_pt_TOOLCHAIN_PATH_CC=$ac_cv_path_ac_pt_TOOLCHAIN_PATH_CC
if test -n "$ac_pt_TOOLCHAIN_PATH_CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_TOOLCHAIN_PATH_CC" >&5
$as_echo "$ac_pt_TOOLCHAIN_PATH_CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_pt_TOOLCHAIN_PATH_CC" = x; then
TOOLCHAIN_PATH_CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
TOOLCHAIN_PATH_CC=$ac_pt_TOOLCHAIN_PATH_CC
fi
else
TOOLCHAIN_PATH_CC="$ac_cv_path_TOOLCHAIN_PATH_CC"
fi
CC=$TOOLCHAIN_PATH_CC
PATH="$PATH_save"
fi
# AC_PATH_PROGS can't be run multiple times with the same variable,
# AC_PATH_TOOL can't be run multiple times with the same variable,
# so create a new name for this run.
if test "x$CC" = x; then
for ac_prog in $SEARCH_LIST
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}$SEARCH_LIST", so it can be a program name with args.
set dummy ${ac_tool_prefix}$SEARCH_LIST; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_POTENTIAL_CC+:} false; then :
@ -33232,8 +33284,62 @@ $as_echo "no" >&6; }
fi
test -n "$POTENTIAL_CC" && break
fi
if test -z "$ac_cv_path_POTENTIAL_CC"; then
ac_pt_POTENTIAL_CC=$POTENTIAL_CC
# Extract the first word of "$SEARCH_LIST", so it can be a program name with args.
set dummy $SEARCH_LIST; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_ac_pt_POTENTIAL_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
case $ac_pt_POTENTIAL_CC in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_POTENTIAL_CC="$ac_pt_POTENTIAL_CC" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_POTENTIAL_CC="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
ac_pt_POTENTIAL_CC=$ac_cv_path_ac_pt_POTENTIAL_CC
if test -n "$ac_pt_POTENTIAL_CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_POTENTIAL_CC" >&5
$as_echo "$ac_pt_POTENTIAL_CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_pt_POTENTIAL_CC" = x; then
POTENTIAL_CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
POTENTIAL_CC=$ac_pt_POTENTIAL_CC
fi
else
POTENTIAL_CC="$ac_cv_path_POTENTIAL_CC"
fi
CC=$POTENTIAL_CC
fi
@ -34439,10 +34545,9 @@ done
if test -n "$TOOLCHAIN_PATH"; then
PATH_save="$PATH"
PATH="$TOOLCHAIN_PATH"
for ac_prog in $SEARCH_LIST
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}$SEARCH_LIST", so it can be a program name with args.
set dummy ${ac_tool_prefix}$SEARCH_LIST; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_TOOLCHAIN_PATH_CXX+:} false; then :
@ -34481,20 +34586,73 @@ $as_echo "no" >&6; }
fi
test -n "$TOOLCHAIN_PATH_CXX" && break
fi
if test -z "$ac_cv_path_TOOLCHAIN_PATH_CXX"; then
ac_pt_TOOLCHAIN_PATH_CXX=$TOOLCHAIN_PATH_CXX
# Extract the first word of "$SEARCH_LIST", so it can be a program name with args.
set dummy $SEARCH_LIST; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_ac_pt_TOOLCHAIN_PATH_CXX+:} false; then :
$as_echo_n "(cached) " >&6
else
case $ac_pt_TOOLCHAIN_PATH_CXX in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_TOOLCHAIN_PATH_CXX="$ac_pt_TOOLCHAIN_PATH_CXX" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_TOOLCHAIN_PATH_CXX="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
ac_pt_TOOLCHAIN_PATH_CXX=$ac_cv_path_ac_pt_TOOLCHAIN_PATH_CXX
if test -n "$ac_pt_TOOLCHAIN_PATH_CXX"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_TOOLCHAIN_PATH_CXX" >&5
$as_echo "$ac_pt_TOOLCHAIN_PATH_CXX" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_pt_TOOLCHAIN_PATH_CXX" = x; then
TOOLCHAIN_PATH_CXX=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
TOOLCHAIN_PATH_CXX=$ac_pt_TOOLCHAIN_PATH_CXX
fi
else
TOOLCHAIN_PATH_CXX="$ac_cv_path_TOOLCHAIN_PATH_CXX"
fi
CXX=$TOOLCHAIN_PATH_CXX
PATH="$PATH_save"
fi
# AC_PATH_PROGS can't be run multiple times with the same variable,
# AC_PATH_TOOL can't be run multiple times with the same variable,
# so create a new name for this run.
if test "x$CXX" = x; then
for ac_prog in $SEARCH_LIST
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}$SEARCH_LIST", so it can be a program name with args.
set dummy ${ac_tool_prefix}$SEARCH_LIST; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_POTENTIAL_CXX+:} false; then :
@ -34533,8 +34691,62 @@ $as_echo "no" >&6; }
fi
test -n "$POTENTIAL_CXX" && break
fi
if test -z "$ac_cv_path_POTENTIAL_CXX"; then
ac_pt_POTENTIAL_CXX=$POTENTIAL_CXX
# Extract the first word of "$SEARCH_LIST", so it can be a program name with args.
set dummy $SEARCH_LIST; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_ac_pt_POTENTIAL_CXX+:} false; then :
$as_echo_n "(cached) " >&6
else
case $ac_pt_POTENTIAL_CXX in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_POTENTIAL_CXX="$ac_pt_POTENTIAL_CXX" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_POTENTIAL_CXX="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
ac_pt_POTENTIAL_CXX=$ac_cv_path_ac_pt_POTENTIAL_CXX
if test -n "$ac_pt_POTENTIAL_CXX"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_POTENTIAL_CXX" >&5
$as_echo "$ac_pt_POTENTIAL_CXX" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_pt_POTENTIAL_CXX" = x; then
POTENTIAL_CXX=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
POTENTIAL_CXX=$ac_pt_POTENTIAL_CXX
fi
else
POTENTIAL_CXX="$ac_cv_path_POTENTIAL_CXX"
fi
CXX=$POTENTIAL_CXX
fi
@ -52643,12 +52855,12 @@ $as_echo "no, forced" >&6; }
# Only enable AOT on linux-X64.
if test "x$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU" = "xlinux-x86_64"; then
if test -e "$HOTSPOT_TOPDIR/src/jdk.aot"; then
if test -e "$HOTSPOT_TOPDIR/src/jdk.vm.compiler"; then
if test -e "$HOTSPOT_TOPDIR/src/jdk.internal.vm.compiler"; then
ENABLE_AOT="true"
else
ENABLE_AOT="false"
if test "x$enable_aot" = "xyes"; then
as_fn_error $? "Cannot build AOT without hotspot/src/jdk.vm.compiler sources. Remove --enable-aot." "$LINENO" 5
as_fn_error $? "Cannot build AOT without hotspot/src/jdk.internal.vm.compiler sources. Remove --enable-aot." "$LINENO" 5
fi
fi
else
@ -64379,8 +64591,8 @@ $as_echo "$JVM_FEATURES" >&6; }
JVM_FEATURES_jvmci=""
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if jdk.vm.compiler should be built" >&5
$as_echo_n "checking if jdk.vm.compiler should be built... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if jdk.internal.vm.compiler should be built" >&5
$as_echo_n "checking if jdk.internal.vm.compiler should be built... " >&6; }
if [[ " $JVM_FEATURES " =~ " graal " ]] ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, forced" >&5
$as_echo "yes, forced" >&6; }

View File

@ -215,12 +215,12 @@ AC_DEFUN_ONCE([HOTSPOT_ENABLE_DISABLE_AOT],
# Only enable AOT on linux-X64.
if test "x$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU" = "xlinux-x86_64"; then
if test -e "$HOTSPOT_TOPDIR/src/jdk.aot"; then
if test -e "$HOTSPOT_TOPDIR/src/jdk.vm.compiler"; then
if test -e "$HOTSPOT_TOPDIR/src/jdk.internal.vm.compiler"; then
ENABLE_AOT="true"
else
ENABLE_AOT="false"
if test "x$enable_aot" = "xyes"; then
AC_MSG_ERROR([Cannot build AOT without hotspot/src/jdk.vm.compiler sources. Remove --enable-aot.])
AC_MSG_ERROR([Cannot build AOT without hotspot/src/jdk.internal.vm.compiler sources. Remove --enable-aot.])
fi
fi
else
@ -327,7 +327,7 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
JVM_FEATURES_jvmci=""
fi
AC_MSG_CHECKING([if jdk.vm.compiler should be built])
AC_MSG_CHECKING([if jdk.internal.vm.compiler should be built])
if HOTSPOT_CHECK_JVM_FEATURE(graal); then
AC_MSG_RESULT([yes, forced])
if test "x$JVM_FEATURES_jvmci" != "xjvmci" ; then

View File

@ -440,7 +440,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
#
# $1 = compiler to test (CC or CXX)
# $2 = human readable name of compiler (C or C++)
# $3 = list of compiler names to search for
# $3 = compiler name to search for
AC_DEFUN([TOOLCHAIN_FIND_COMPILER],
[
COMPILER_NAME=$2
@ -482,15 +482,15 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER],
if test -n "$TOOLCHAIN_PATH"; then
PATH_save="$PATH"
PATH="$TOOLCHAIN_PATH"
AC_PATH_PROGS(TOOLCHAIN_PATH_$1, $SEARCH_LIST)
AC_PATH_TOOL(TOOLCHAIN_PATH_$1, $SEARCH_LIST)
$1=$TOOLCHAIN_PATH_$1
PATH="$PATH_save"
fi
# AC_PATH_PROGS can't be run multiple times with the same variable,
# AC_PATH_TOOL can't be run multiple times with the same variable,
# so create a new name for this run.
if test "x[$]$1" = x; then
AC_PATH_PROGS(POTENTIAL_$1, $SEARCH_LIST)
AC_PATH_TOOL(POTENTIAL_$1, $SEARCH_LIST)
$1=$POTENTIAL_$1
fi

View File

@ -401,6 +401,8 @@ var getJibProfilesCommon = function (input, data) {
common.boot_jdk_home = input.get("boot_jdk", "home_path") + "/jdk"
+ common.boot_jdk_subdirpart
+ (input.build_os == "macosx" ? ".jdk/Contents/Home" : "");
common.boot_jdk_platform = input.build_os + "-"
+ (input.build_cpu == "x86" ? "i586" : input.build_cpu);
return common;
};
@ -832,9 +834,6 @@ var getJibProfilesProfiles = function (input, common, data) {
*/
var getJibProfilesDependencies = function (input, common) {
var boot_jdk_platform = input.build_os + "-"
+ (input.build_cpu == "x86" ? "i586" : input.build_cpu);
var devkit_platform_revisions = {
linux_x64: "gcc4.9.2-OEL6.4+1.1",
macosx_x64: "Xcode6.3-MacOSX10.9+1.0",
@ -853,9 +852,9 @@ var getJibProfilesDependencies = function (input, common) {
server: "javare",
module: "jdk",
revision: common.boot_jdk_revision,
checksum_file: boot_jdk_platform + "/MD5_VALUES",
file: boot_jdk_platform + "/jdk-" + common.boot_jdk_revision
+ "-" + boot_jdk_platform + ".tar.gz",
checksum_file: common.boot_jdk_platform + "/MD5_VALUES",
file: common.boot_jdk_platform + "/jdk-" + common.boot_jdk_revision
+ "-" + common.boot_jdk_platform + ".tar.gz",
configure_args: "--with-boot-jdk=" + common.boot_jdk_home,
environment_path: common.boot_jdk_home + "/bin"
},

View File

@ -462,13 +462,13 @@ jdk.internal.jvmstat_COPY := aliasmap
# JVMCI compilers make use of that information for various sanity checks.
# Don't use Indy strings concatenation to have good JVMCI startup performance.
jdk.vm.ci_ADD_JAVAC_FLAGS := -parameters -Xlint:-exports -XDstringConcat=inline
jdk.internal.vm.ci_ADD_JAVAC_FLAGS := -parameters -Xlint:-exports -XDstringConcat=inline
################################################################################
jdk.vm.compiler_ADD_JAVAC_FLAGS := -parameters -XDstringConcat=inline
jdk.internal.vm.compiler_ADD_JAVAC_FLAGS := -parameters -XDstringConcat=inline
jdk.vm.compiler_EXCLUDES += \
jdk.internal.vm.compiler_EXCLUDES += \
org.graalvm.compiler.core.match.processor \
org.graalvm.compiler.nodeinfo.processor \
org.graalvm.compiler.options.processor \
@ -557,16 +557,16 @@ MODULESOURCEPATH := $(call GetModuleSrcPath)
# Add imported modules to the modulepath
MODULEPATH := $(call PathList, $(IMPORT_MODULES_CLASSES))
ifeq ($(MODULE), jdk.vm.ci)
## WORKAROUND jdk.vm.ci source structure issue
ifeq ($(MODULE), jdk.internal.vm.ci)
## WORKAROUND jdk.internal.vm.ci source structure issue
JVMCI_MODULESOURCEPATH := $(MODULESOURCEPATH) \
$(subst /$(MODULE)/,/*/, $(filter-out %processor/src, \
$(wildcard $(HOTSPOT_TOPDIR)/src/jdk.vm.ci/share/classes/*/src)))
$(wildcard $(HOTSPOT_TOPDIR)/src/$(MODULE)/share/classes/*/src)))
MODULESOURCEPATH := $(call PathList, $(JVMCI_MODULESOURCEPATH))
endif
ifeq ($(MODULE), jdk.vm.compiler)
## WORKAROUND jdk.vm.compiler source structure issue
ifeq ($(MODULE), jdk.internal.vm.compiler)
## WORKAROUND jdk.internal.vm.compiler source structure issue
VM_COMPILER_MODULESOURCEPATH := $(MODULESOURCEPATH) \
$(subst /$(MODULE)/,/*/, $(filter-out %processor/src %test/src %jtt/src %bench/src %microbenchmarks/src, \
$(wildcard $(HOTSPOT_TOPDIR)/src/$(MODULE)/share/classes/*/src)))

View File

@ -49,7 +49,7 @@ TARGETS += $(CLASSLIST_JAR)
LINK_OPT_DIR := $(SUPPORT_OUTPUTDIR)/link_opt
CLASSLIST_FILE := $(LINK_OPT_DIR)/classlist
JLI_TRACE_FILE := $(LINK_OPT_DIR)/jli_trace.out
JLI_TRACE_FILE := $(LINK_OPT_DIR)/default_jli_trace.txt
# If an external buildjdk has been supplied, we don't build a separate interim
# image, so just use the external build jdk instead.
@ -69,7 +69,7 @@ $(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXE_SUFFIX) $(CLASSLIST_JAR)
# The jli trace is created by the same recipe as classlist. By declaring these
# dependencies, make will correctly rebuild both jli trace and classlist
# incrementally using the single recpie above.
# incrementally using the single recipe above.
$(CLASSLIST_FILE): $(JLI_TRACE_FILE)
$(JLI_TRACE_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXE_SUFFIX) $(CLASSLIST_JAR)
@ -83,6 +83,19 @@ $(eval $(call SetupCopyFiles, COPY_CLASSLIST, \
TARGETS += $(COPY_CLASSLIST)
# Copy the default_jli_trace.txt file into jdk.jlink
$(eval $(call SetupCopyFiles, COPY_JLI_TRACE, \
FILES := $(JLI_TRACE_FILE), \
DEST := $(JDK_OUTPUTDIR)/modules/jdk.jlink/jdk/tools/jlink/internal/plugins, \
))
# Because of the single recipe for jli trace and classlist above, the
# COPY_JLI_TRACE rule needs to explicitly add the classlist file as a
# prerequisite.
$(COPY_JLI_TRACE): $(CLASSLIST_FILE)
TARGETS += $(COPY_JLI_TRACE)
################################################################################
all: $(TARGETS)

View File

@ -105,7 +105,7 @@ JLINK_ORDER_RESOURCES := **module-info.class
JLINK_JLI_CLASSES :=
ifeq ($(ENABLE_GENERATE_CLASSLIST), true)
JLINK_ORDER_RESOURCES += @$(SUPPORT_OUTPUTDIR)/link_opt/classlist
JLINK_JLI_CLASSES := --generate-jli-classes=@$(SUPPORT_OUTPUTDIR)/link_opt/jli_trace.out
JLINK_JLI_CLASSES := --generate-jli-classes=@$(SUPPORT_OUTPUTDIR)/link_opt/default_jli_trace.txt
endif
JLINK_ORDER_RESOURCES += \
/java.base/java/** \

View File

@ -633,16 +633,16 @@ else
# in javadoc.
java.desktop-gensrc-jdk: java.base-gensrc
# The annotation processing for jdk.vm.ci and jdk.vm.compiler needs classes
# from the current JDK.
jdk.vm.ci-gensrc-hotspot: $(addsuffix -java, \
$(call FindTransitiveDepsForModule, jdk.vm.ci))
jdk.vm.compiler-gensrc-hotspot: $(addsuffix -java, \
$(call FindTransitiveDepsForModule, jdk.vm.compiler))
# The annotation processing for jdk.internal.vm.ci and jdk.internal.vm.compiler
# needs classes from the current JDK.
jdk.internal.vm.ci-gensrc-hotspot: $(addsuffix -java, \
$(call FindTransitiveDepsForModule, jdk.internal.vm.ci))
jdk.internal.vm.compiler-gensrc-hotspot: $(addsuffix -java, \
$(call FindTransitiveDepsForModule, jdk.internal.vm.compiler))
# For jdk.vm.compiler, the gensrc step is generating a module-info.java.extra
# For jdk.internal.vm.compiler, the gensrc step is generating a module-info.java.extra
# file to be processed by the gensrc-moduleinfo target.
jdk.vm.compiler-gensrc-moduleinfo: jdk.vm.compiler-gensrc-hotspot
jdk.internal.vm.compiler-gensrc-moduleinfo: jdk.internal.vm.compiler-gensrc-hotspot
# Explicitly add dependencies for special targets
java.base-java: unpack-sec
@ -727,7 +727,7 @@ else
generate-link-opt-data: buildtools-jdk
# The generated classlist needs to go into java.base-jmod.
java.base-jmod jdk-image jre-image: generate-link-opt-data
java.base-jmod jdk.jlink-jmod jdk-image jre-image: generate-link-opt-data
endif
release-file: create-source-revision-tracker

View File

@ -63,7 +63,7 @@ BOOT_MODULES += \
jdk.net \
jdk.sctp \
jdk.unsupported \
jdk.vm.ci \
jdk.internal.vm.ci \
#
# to be deprivileged
@ -114,7 +114,7 @@ PLATFORM_MODULES += \
jdk.scripting.nashorn \
jdk.security.auth \
jdk.security.jgss \
jdk.vm.compiler \
jdk.internal.vm.compiler \
jdk.xml.dom \
jdk.zipfs \
#
@ -147,7 +147,7 @@ endif
# Filter out Graal specific modules if Graal build is disabled
ifeq ($(INCLUDE_GRAAL), false)
MODULES_FILTER += jdk.vm.compiler
MODULES_FILTER += jdk.internal.vm.compiler
endif
################################################################################

View File

@ -199,6 +199,10 @@ public abstract class CommandLineOptionTest {
throws Throwable {
List<String> finalOptions = new ArrayList<>();
finalOptions.add(CommandLineOptionTest.getVMTypeOption());
String extraFlagForEmulated = CommandLineOptionTest.getVMTypeOptionForEmulated();
if (extraFlagForEmulated != null) {
finalOptions.add(extraFlagForEmulated);
}
Collections.addAll(finalOptions, options);
CommandLineOptionTest.verifyJVMStartup(expectedMessages,
@ -390,6 +394,10 @@ public abstract class CommandLineOptionTest {
String... additionalVMOpts) throws Throwable {
List<String> finalOptions = new ArrayList<>();
finalOptions.add(CommandLineOptionTest.getVMTypeOption());
String extraFlagForEmulated = CommandLineOptionTest.getVMTypeOptionForEmulated();
if (extraFlagForEmulated != null) {
finalOptions.add(extraFlagForEmulated);
}
Collections.addAll(finalOptions, additionalVMOpts);
CommandLineOptionTest.verifyOptionValue(optionName, expectedValue,
@ -497,6 +505,18 @@ public abstract class CommandLineOptionTest {
throw new RuntimeException("Unknown VM mode.");
}
/**
* @return addtional VMoptions(Emulated related) required to start a new VM with the same type as current.
*/
private static String getVMTypeOptionForEmulated() {
if (Platform.isServer() && !Platform.isEmulatedClient()) {
return "-XX:-NeverActAsServerClassMachine";
} else if (Platform.isEmulatedClient()) {
return "-XX:+NeverActAsServerClassMachine";
}
return null;
}
private final BooleanSupplier predicate;
/**