This commit is contained in:
J. Duke 2017-07-05 20:55:51 +02:00
commit c682eba68d
31 changed files with 3236 additions and 2542 deletions

View file

@ -5,3 +5,5 @@ nbproject/private/
^.hgtip ^.hgtip
^.bridge2 ^.bridge2
.DS_Store .DS_Store
.metadata/
.recommenders/

View file

@ -330,3 +330,4 @@ ce5c14d97d95084504c32b9320cb33cce4235588 jdk9-b83
1f345217c9bab05f192d00cf1665b3286c49ccdb jdk9-b85 1f345217c9bab05f192d00cf1665b3286c49ccdb jdk9-b85
2aa1daf98d3e2ee37f20f6858c53cc37020f6937 jdk9-b86 2aa1daf98d3e2ee37f20f6858c53cc37020f6937 jdk9-b86
fd4f4f7561074dc0dbc1772c8489c7b902b6b8a9 jdk9-b87 fd4f4f7561074dc0dbc1772c8489c7b902b6b8a9 jdk9-b87
0bb87e05d83e1cf41cfb7ddeb2c8eaec539fd907 jdk9-b88

File diff suppressed because it is too large Load diff

1263
README-builds.md Normal file

File diff suppressed because it is too large Load diff

View file

@ -410,6 +410,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
BASIC_REQUIRE_PROGS(NAWK, [nawk gawk awk]) BASIC_REQUIRE_PROGS(NAWK, [nawk gawk awk])
BASIC_REQUIRE_PROGS(PRINTF, printf) BASIC_REQUIRE_PROGS(PRINTF, printf)
BASIC_REQUIRE_PROGS(RM, rm) BASIC_REQUIRE_PROGS(RM, rm)
BASIC_REQUIRE_PROGS(RMDIR, rmdir)
BASIC_REQUIRE_PROGS(SH, sh) BASIC_REQUIRE_PROGS(SH, sh)
BASIC_REQUIRE_PROGS(SORT, sort) BASIC_REQUIRE_PROGS(SORT, sort)
BASIC_REQUIRE_PROGS(TAIL, tail) BASIC_REQUIRE_PROGS(TAIL, tail)

View file

@ -305,6 +305,16 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
BOOT_JDK_SOURCETARGET="-source 8 -target 8" BOOT_JDK_SOURCETARGET="-source 8 -target 8"
AC_SUBST(BOOT_JDK_SOURCETARGET) AC_SUBST(BOOT_JDK_SOURCETARGET)
AC_SUBST(JAVAC_FLAGS) AC_SUBST(JAVAC_FLAGS)
# Check if the boot jdk is 32 or 64 bit
if "$JAVA" -d64 -version > /dev/null 2>&1; then
BOOT_JDK_BITS="64"
else
BOOT_JDK_BITS="32"
fi
AC_MSG_CHECKING([if Boot JDK is 32 or 64 bits])
AC_MSG_RESULT([$BOOT_JDK_BITS])
AC_SUBST(BOOT_JDK_BITS)
]) ])
AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS], AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
@ -341,7 +351,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
# Maximum amount of heap memory. # Maximum amount of heap memory.
# Maximum stack size. # Maximum stack size.
JVM_MAX_HEAP=`expr $MEMORY_SIZE / 2` JVM_MAX_HEAP=`expr $MEMORY_SIZE / 2`
if test "x$BUILD_NUM_BITS" = x32; then if test "x$BOOT_JDK_BITS" = "x32"; then
if test "$JVM_MAX_HEAP" -gt "1100"; then if test "$JVM_MAX_HEAP" -gt "1100"; then
JVM_MAX_HEAP=1100 JVM_MAX_HEAP=1100
elif test "$JVM_MAX_HEAP" -lt "512"; then elif test "$JVM_MAX_HEAP" -lt "512"; then
@ -349,10 +359,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
fi fi
STACK_SIZE=768 STACK_SIZE=768
else else
# Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit # Running a 64 bit JVM allows for and requires a bigger heap
# pointers are used. Apparently, we need to increase the heap and stack
# space for the jvm. More specifically, when running javac to build huge
# jdk batch
if test "$JVM_MAX_HEAP" -gt "1600"; then if test "$JVM_MAX_HEAP" -gt "1600"; then
JVM_MAX_HEAP=1600 JVM_MAX_HEAP=1600
elif test "$JVM_MAX_HEAP" -lt "512"; then elif test "$JVM_MAX_HEAP" -lt "512"; then

View file

@ -328,12 +328,23 @@ AC_DEFUN_ONCE([BPERF_SETUP_SMART_JAVAC],
AC_ARG_ENABLE([sjavac], [AS_HELP_STRING([--enable-sjavac], AC_ARG_ENABLE([sjavac], [AS_HELP_STRING([--enable-sjavac],
[use sjavac to do fast incremental compiles @<:@disabled@:>@])], [use sjavac to do fast incremental compiles @<:@disabled@:>@])],
[ENABLE_SJAVAC="${enableval}"], [ENABLE_SJAVAC='no']) [ENABLE_SJAVAC="${enableval}"], [ENABLE_SJAVAC="no"])
if test "x$JVM_ARG_OK" = "xfalse"; then if test "x$JVM_ARG_OK" = "xfalse"; then
AC_MSG_WARN([Could not set -Xms${MS_VALUE}M -Xmx${MX_VALUE}M, disabling sjavac]) AC_MSG_WARN([Could not set -Xms${MS_VALUE}M -Xmx${MX_VALUE}M, disabling sjavac])
ENABLE_SJAVAC=no; ENABLE_SJAVAC="no"
fi fi
AC_MSG_CHECKING([whether to use sjavac]) AC_MSG_CHECKING([whether to use sjavac])
AC_MSG_RESULT([$ENABLE_SJAVAC]) AC_MSG_RESULT([$ENABLE_SJAVAC])
AC_SUBST(ENABLE_SJAVAC) AC_SUBST(ENABLE_SJAVAC)
AC_ARG_ENABLE([javac-server], [AS_HELP_STRING([--enable-javac-server],
[use only the server part of sjavac for faster javac compiles @<:@disabled@:>@])],
[ENABLE_JAVAC_SERVER="${enableval}"], [ENABLE_JAVAC_SERVER="no"])
if test "x$JVM_ARG_OK" = "xfalse"; then
AC_MSG_WARN([Could not set -Xms${MS_VALUE}M -Xmx${MX_VALUE}M, disabling javac server])
ENABLE_JAVAC_SERVER="no"
fi
AC_MSG_CHECKING([whether to use javac server])
AC_MSG_RESULT([$ENABLE_JAVAC_SERVER])
AC_SUBST(ENABLE_JAVAC_SERVER)
]) ])

View file

@ -66,7 +66,7 @@ export STRIP="@STRIP@ @STRIPFLAGS@"
export TEE="@TEE@" export TEE="@TEE@"
export UNIQ="@UNIQ@" export UNIQ="@UNIQ@"
export UNPACK200="@FIXPATH@ @BOOT_JDK@/bin/unpack200" export UNPACK200="@FIXPATH@ @BOOT_JDK@/bin/unpack200"
export UNZIP="@UNZIP@" export UNARCHIVE="@UNZIP@ -q"
export SRC_ROOT="@TOPDIR@" export SRC_ROOT="@TOPDIR@"
export OUTPUT_ROOT="@OUTPUT_ROOT@" export OUTPUT_ROOT="@OUTPUT_ROOT@"

View file

@ -632,6 +632,7 @@ LIBOBJS
CFLAGS_CCACHE CFLAGS_CCACHE
CCACHE CCACHE
USE_PRECOMPILED_HEADER USE_PRECOMPILED_HEADER
ENABLE_JAVAC_SERVER
ENABLE_SJAVAC ENABLE_SJAVAC
SJAVAC_SERVER_JAVA_FLAGS SJAVAC_SERVER_JAVA_FLAGS
SJAVAC_SERVER_JAVA SJAVAC_SERVER_JAVA
@ -815,6 +816,7 @@ JAXWS_TOPDIR
JAXP_TOPDIR JAXP_TOPDIR
CORBA_TOPDIR CORBA_TOPDIR
LANGTOOLS_TOPDIR LANGTOOLS_TOPDIR
BOOT_JDK_BITS
JAVAC_FLAGS JAVAC_FLAGS
BOOT_JDK_SOURCETARGET BOOT_JDK_SOURCETARGET
JARSIGNER JARSIGNER
@ -968,6 +970,7 @@ TAR
TAIL TAIL
SORT SORT
SH SH
RMDIR
RM RM
PRINTF PRINTF
NAWK NAWK
@ -1115,6 +1118,7 @@ with_jobs
with_boot_jdk_jvmargs with_boot_jdk_jvmargs
with_sjavac_server_java with_sjavac_server_java
enable_sjavac enable_sjavac
enable_javac_server
enable_precompiled_headers enable_precompiled_headers
enable_ccache enable_ccache
with_ccache_dir with_ccache_dir
@ -1146,6 +1150,7 @@ MV
NAWK NAWK
PRINTF PRINTF
RM RM
RMDIR
SH SH
SORT SORT
TAIL TAIL
@ -1864,6 +1869,8 @@ Optional Features:
--with-freetype, disabled otherwise] --with-freetype, disabled otherwise]
--enable-sjavac use sjavac to do fast incremental compiles --enable-sjavac use sjavac to do fast incremental compiles
[disabled] [disabled]
--enable-javac-server use only the server part of sjavac for faster javac
compiles [disabled]
--disable-precompiled-headers --disable-precompiled-headers
disable using precompiled headers when compiling C++ disable using precompiled headers when compiling C++
[enabled] [enabled]
@ -2025,6 +2032,7 @@ Some influential environment variables:
NAWK Override default value for NAWK NAWK Override default value for NAWK
PRINTF Override default value for PRINTF PRINTF Override default value for PRINTF
RM Override default value for RM RM Override default value for RM
RMDIR Override default value for RMDIR
SH Override default value for SH SH Override default value for SH
SORT Override default value for SORT SORT Override default value for SORT
TAIL Override default value for TAIL TAIL Override default value for TAIL
@ -4587,7 +4595,7 @@ VS_SDK_PLATFORM_NAME_2013=
#CUSTOM_AUTOCONF_INCLUDE #CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks: # Do not change or remove the following line, it is needed for consistency checks:
DATE_WHEN_GENERATED=1444643341 DATE_WHEN_GENERATED=1445964676
############################################################################### ###############################################################################
# #
@ -9511,6 +9519,209 @@ $as_echo "$tool_specified" >&6; }
# Publish this variable in the help.
if [ -z "${RMDIR+x}" ]; then
# The variable is not set by user, try to locate tool using the code snippet
for ac_prog in rmdir
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; 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_RMDIR+:} false; then :
$as_echo_n "(cached) " >&6
else
case $RMDIR in
[\\/]* | ?:[\\/]*)
ac_cv_path_RMDIR="$RMDIR" # 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_RMDIR="$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
RMDIR=$ac_cv_path_RMDIR
if test -n "$RMDIR"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $RMDIR" >&5
$as_echo "$RMDIR" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$RMDIR" && break
done
else
# The variable is set, but is it from the command line or the environment?
# Try to remove the string !RMDIR! from our list.
try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!RMDIR!/}
if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
# If it failed, the variable was not from the command line. Ignore it,
# but warn the user (except for BASH, which is always set by the calling BASH).
if test "xRMDIR" != xBASH; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of RMDIR from the environment. Use command line variables instead." >&5
$as_echo "$as_me: WARNING: Ignoring value of RMDIR from the environment. Use command line variables instead." >&2;}
fi
# Try to locate tool using the code snippet
for ac_prog in rmdir
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; 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_RMDIR+:} false; then :
$as_echo_n "(cached) " >&6
else
case $RMDIR in
[\\/]* | ?:[\\/]*)
ac_cv_path_RMDIR="$RMDIR" # 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_RMDIR="$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
RMDIR=$ac_cv_path_RMDIR
if test -n "$RMDIR"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $RMDIR" >&5
$as_echo "$RMDIR" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$RMDIR" && break
done
else
# If it succeeded, then it was overridden by the user. We will use it
# for the tool.
# First remove it from the list of overridden variables, so we can test
# for unknown variables in the end.
CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
# Check if we try to supply an empty value
if test "x$RMDIR" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Setting user supplied tool RMDIR= (no value)" >&5
$as_echo "$as_me: Setting user supplied tool RMDIR= (no value)" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for RMDIR" >&5
$as_echo_n "checking for RMDIR... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
$as_echo "disabled" >&6; }
else
# Check if the provided tool contains a complete path.
tool_specified="$RMDIR"
tool_basename="${tool_specified##*/}"
if test "x$tool_basename" = "x$tool_specified"; then
# A command without a complete path is provided, search $PATH.
{ $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool RMDIR=$tool_basename" >&5
$as_echo "$as_me: Will search for user supplied tool RMDIR=$tool_basename" >&6;}
# Extract the first word of "$tool_basename", so it can be a program name with args.
set dummy $tool_basename; 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_RMDIR+:} false; then :
$as_echo_n "(cached) " >&6
else
case $RMDIR in
[\\/]* | ?:[\\/]*)
ac_cv_path_RMDIR="$RMDIR" # 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_RMDIR="$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
RMDIR=$ac_cv_path_RMDIR
if test -n "$RMDIR"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $RMDIR" >&5
$as_echo "$RMDIR" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$RMDIR" = x; then
as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
fi
else
# Otherwise we believe it is a complete path. Use it as it is.
{ $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool RMDIR=$tool_specified" >&5
$as_echo "$as_me: Will use user supplied tool RMDIR=$tool_specified" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for RMDIR" >&5
$as_echo_n "checking for RMDIR... " >&6; }
if test ! -x "$tool_specified"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
as_fn_error $? "User supplied tool RMDIR=$tool_specified does not exist or is not executable" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
$as_echo "$tool_specified" >&6; }
fi
fi
fi
fi
if test "x$RMDIR" = x; then
as_fn_error $? "Could not find required tool for RMDIR" "$LINENO" 5
fi
# Publish this variable in the help. # Publish this variable in the help.
@ -26920,6 +27131,18 @@ $as_echo "$tool_specified" >&6; }
# Check if the boot jdk is 32 or 64 bit
if "$JAVA" -d64 -version > /dev/null 2>&1; then
BOOT_JDK_BITS="64"
else
BOOT_JDK_BITS="32"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if Boot JDK is 32 or 64 bits" >&5
$as_echo_n "checking if Boot JDK is 32 or 64 bits... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_BITS" >&5
$as_echo "$BOOT_JDK_BITS" >&6; }
############################################################################### ###############################################################################
# #
@ -53099,7 +53322,7 @@ $as_echo_n "checking flags for boot jdk java command for big workloads... " >&6;
# Maximum amount of heap memory. # Maximum amount of heap memory.
# Maximum stack size. # Maximum stack size.
JVM_MAX_HEAP=`expr $MEMORY_SIZE / 2` JVM_MAX_HEAP=`expr $MEMORY_SIZE / 2`
if test "x$BUILD_NUM_BITS" = x32; then if test "x$BOOT_JDK_BITS" = "x32"; then
if test "$JVM_MAX_HEAP" -gt "1100"; then if test "$JVM_MAX_HEAP" -gt "1100"; then
JVM_MAX_HEAP=1100 JVM_MAX_HEAP=1100
elif test "$JVM_MAX_HEAP" -lt "512"; then elif test "$JVM_MAX_HEAP" -lt "512"; then
@ -53107,10 +53330,7 @@ $as_echo_n "checking flags for boot jdk java command for big workloads... " >&6;
fi fi
STACK_SIZE=768 STACK_SIZE=768
else else
# Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit # Running a 64 bit JVM allows for and requires a bigger heap
# pointers are used. Apparently, we need to increase the heap and stack
# space for the jvm. More specifically, when running javac to build huge
# jdk batch
if test "$JVM_MAX_HEAP" -gt "1600"; then if test "$JVM_MAX_HEAP" -gt "1600"; then
JVM_MAX_HEAP=1600 JVM_MAX_HEAP=1600
elif test "$JVM_MAX_HEAP" -lt "512"; then elif test "$JVM_MAX_HEAP" -lt "512"; then
@ -53299,13 +53519,13 @@ fi
if test "${enable_sjavac+set}" = set; then : if test "${enable_sjavac+set}" = set; then :
enableval=$enable_sjavac; ENABLE_SJAVAC="${enableval}" enableval=$enable_sjavac; ENABLE_SJAVAC="${enableval}"
else else
ENABLE_SJAVAC='no' ENABLE_SJAVAC="no"
fi fi
if test "x$JVM_ARG_OK" = "xfalse"; then if test "x$JVM_ARG_OK" = "xfalse"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not set -Xms${MS_VALUE}M -Xmx${MX_VALUE}M, disabling sjavac" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not set -Xms${MS_VALUE}M -Xmx${MX_VALUE}M, disabling sjavac" >&5
$as_echo "$as_me: WARNING: Could not set -Xms${MS_VALUE}M -Xmx${MX_VALUE}M, disabling sjavac" >&2;} $as_echo "$as_me: WARNING: Could not set -Xms${MS_VALUE}M -Xmx${MX_VALUE}M, disabling sjavac" >&2;}
ENABLE_SJAVAC=no; ENABLE_SJAVAC="no"
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use sjavac" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use sjavac" >&5
$as_echo_n "checking whether to use sjavac... " >&6; } $as_echo_n "checking whether to use sjavac... " >&6; }
@ -53313,6 +53533,24 @@ $as_echo_n "checking whether to use sjavac... " >&6; }
$as_echo "$ENABLE_SJAVAC" >&6; } $as_echo "$ENABLE_SJAVAC" >&6; }
# Check whether --enable-javac-server was given.
if test "${enable_javac_server+set}" = set; then :
enableval=$enable_javac_server; ENABLE_JAVAC_SERVER="${enableval}"
else
ENABLE_JAVAC_SERVER="no"
fi
if test "x$JVM_ARG_OK" = "xfalse"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not set -Xms${MS_VALUE}M -Xmx${MX_VALUE}M, disabling javac server" >&5
$as_echo "$as_me: WARNING: Could not set -Xms${MS_VALUE}M -Xmx${MX_VALUE}M, disabling javac server" >&2;}
ENABLE_JAVAC_SERVER="no"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use javac server" >&5
$as_echo_n "checking whether to use javac server... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENABLE_JAVAC_SERVER" >&5
$as_echo "$ENABLE_JAVAC_SERVER" >&6; }
# Can the C/C++ compiler use precompiled headers? # Can the C/C++ compiler use precompiled headers?

View file

@ -245,6 +245,7 @@ MEMORY_SIZE:=@MEMORY_SIZE@
# Enable sjavac support = use a javac server, # Enable sjavac support = use a javac server,
# multi core javac compilation and dependency tracking. # multi core javac compilation and dependency tracking.
ENABLE_SJAVAC:=@ENABLE_SJAVAC@ ENABLE_SJAVAC:=@ENABLE_SJAVAC@
ENABLE_JAVAC_SERVER:=@ENABLE_JAVAC_SERVER@
# Store sjavac server synchronization files here, and # Store sjavac server synchronization files here, and
# the sjavac server log files. # the sjavac server log files.
SJAVAC_SERVER_DIR=$(MAKESUPPORT_OUTPUTDIR)/javacservers SJAVAC_SERVER_DIR=$(MAKESUPPORT_OUTPUTDIR)/javacservers
@ -504,6 +505,7 @@ PATCH:=@PATCH@
PRINTF:=@PRINTF@ PRINTF:=@PRINTF@
PWD:=@THEPWDCMD@ PWD:=@THEPWDCMD@
RM:=@RM@ RM:=@RM@
RMDIR:=@RMDIR@
SED:=@SED@ SED:=@SED@
SH:=@SH@ SH:=@SH@
SORT:=@SORT@ SORT:=@SORT@

View file

@ -51,8 +51,6 @@ else
STAT_PRINT_SIZE="-c %s" STAT_PRINT_SIZE="-c %s"
fi fi
UNARCHIVE="$UNZIP -q"
COMPARE_EXCEPTIONS_INCLUDE="$SRC_ROOT/common/bin/compare_exceptions.sh.incl" COMPARE_EXCEPTIONS_INCLUDE="$SRC_ROOT/common/bin/compare_exceptions.sh.incl"
if [ ! -e "$COMPARE_EXCEPTIONS_INCLUDE" ]; then if [ ! -e "$COMPARE_EXCEPTIONS_INCLUDE" ]; then
echo "Error: Cannot locate the exceptions file, it should have been here: $COMPARE_EXCEPTIONS_INCLUDE" echo "Error: Cannot locate the exceptions file, it should have been here: $COMPARE_EXCEPTIONS_INCLUDE"

View file

@ -0,0 +1,62 @@
#!/bin/bash
# Get an absolute path to this script, since that determines the top-level
# directory.
this_script_dir=`dirname $0`
TOPDIR=`cd $this_script_dir/../.. > /dev/null && pwd`
GREP=grep
MD_FILE=$TOPDIR/README-builds.md
HTML_FILE=$TOPDIR/README-builds.html
# Locate the markdown processor tool and check that it is the correct version.
locate_markdown_processor() {
if [ -z "$MARKDOWN" ]; then
MARKDOWN=`which markdown 2> /dev/null`
if [ -z "$MARKDOWN" ]; then
echo "Error: Cannot locate markdown processor" 1>&2
exit 1
fi
fi
# Test version
MARKDOWN_VERSION=`$MARKDOWN -version | $GREP version`
if [ "x$MARKDOWN_VERSION" != "xThis is Markdown, version 1.0.1." ]; then
echo "Error: Expected markdown version 1.0.1." 1>&2
echo "Actual version found: $MARKDOWN_VERSION" 1>&2
echo "Download markdown here: https://daringfireball.net/projects/markdown/" 1>&2
exit 1
fi
}
# Verify that the source markdown file looks sound.
verify_source_code() {
TOO_LONG_LINES=`$GREP -E -e '^.{80}.+$' $MD_FILE`
if [ "x$TOO_LONG_LINES" != x ]; then
echo "Warning: The following lines are longer than 80 characters:"
$GREP -E -e '^.{80}.+$' $MD_FILE
fi
}
# Convert the markdown file to html format.
process_source() {
echo "Generating html file from markdown"
cat > $HTML_FILE << END
<html>
<head>
<title>OpenJDK Build README</title>
</head>
<body>
END
markdown $MD_FILE >> $HTML_FILE
cat >> $HTML_FILE <<END
</body>
</html>
END
echo "Done"
}
locate_markdown_processor
verify_source_code
process_source

View file

@ -438,6 +438,18 @@ jdk.jvmstat_COPY := aliasmap
################################################################################ ################################################################################
jdk.vm.ci_EXCLUDE_FILES += \
jdk/vm/ci/options/processor/OptionProcessor.java \
jdk/vm/ci/service/processor/ServiceProviderProcessor.java \
#
jdk.vm.ci_EXCLUDES += \
META-INF/jvmci.options \
META-INF/jvmci.providers \
#
################################################################################
jdk.xml.bind_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS jdk.xml.bind_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS
jdk.xml.bind_CLEAN := .properties jdk.xml.bind_CLEAN := .properties
jdk.xml.bind_COPY := .xsd JAXBContextFactory.java ZeroOneBooleanAdapter.java jdk.xml.bind_COPY := .xsd JAXBContextFactory.java ZeroOneBooleanAdapter.java
@ -479,6 +491,7 @@ ifneq ($(OPENJDK_TARGET_OS), $(OPENJDK_TARGET_OS_TYPE))
endif endif
SHARE_SRC_DIRS += \ SHARE_SRC_DIRS += \
$(HOTSPOT_TOPDIR)/src/$1/share/classes \
$(JDK_TOPDIR)/src/$1/share/classes \ $(JDK_TOPDIR)/src/$1/share/classes \
$(LANGTOOLS_TOPDIR)/src/$1/share/classes \ $(LANGTOOLS_TOPDIR)/src/$1/share/classes \
$(CORBA_TOPDIR)/src/$1/share/classes \ $(CORBA_TOPDIR)/src/$1/share/classes \
@ -531,7 +544,7 @@ define SetupModuleCompilation
$$(eval $$(call SetupJavaCompilation,$1, \ $$(eval $$(call SetupJavaCompilation,$1, \
SETUP := $$(if $$($1_SETUP), $$($1_SETUP), GENERATE_JDKBYTECODE), \ SETUP := $$(if $$($1_SETUP), $$($1_SETUP), GENERATE_JDKBYTECODE), \
SRC := $$(wildcard $$(call ALL_SRC_DIRS,$1)), \ SRC := $$(if $$($1_SRC), $$($1_SRC), $$(wildcard $$(call ALL_SRC_DIRS,$1))), \
INCLUDES := $(JDK_USER_DEFINED_FILTER),\ INCLUDES := $(JDK_USER_DEFINED_FILTER),\
BIN := $$(if $$($1_BIN), $$($1_BIN), $(JDK_OUTPUTDIR)/modules/$1), \ BIN := $$(if $$($1_BIN), $$($1_BIN), $(JDK_OUTPUTDIR)/modules/$1), \
HEADERS := $(SUPPORT_OUTPUTDIR)/headers/$1, \ HEADERS := $(SUPPORT_OUTPUTDIR)/headers/$1, \

View file

@ -39,7 +39,8 @@ $(eval $(call IncludeCustomExtension, , Images-pre.gmk))
MAIN_MODULES += java.se java.smartcardio jdk.httpserver jdk.sctp \ MAIN_MODULES += java.se java.smartcardio jdk.httpserver jdk.sctp \
jdk.security.auth jdk.security.jgss jdk.pack200 jdk.xml.dom \ jdk.security.auth jdk.security.jgss jdk.pack200 jdk.xml.dom \
jdk.accessibility jdk.internal.le jdk.scripting.nashorn.shell jdk.accessibility jdk.internal.le jdk.scripting.nashorn.shell \
jdk.vm.ci
# providers # providers
PROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.localedata \ PROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.localedata \
@ -48,7 +49,8 @@ PROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk
# tools # tools
TOOLS_MODULES += jdk.attach jdk.compiler jdk.dev \ TOOLS_MODULES += jdk.attach jdk.compiler jdk.dev \
jdk.javadoc jdk.jcmd jdk.jconsole jdk.hotspot.agent jdk.jartool \ jdk.javadoc jdk.jcmd jdk.jconsole jdk.hotspot.agent jdk.jartool \
jdk.jdeps jdk.jdi jdk.jdwp.agent jdk.policytool jdk.rmic jdk.xml.bind jdk.xml.ws jdk.jdeps jdk.jdi jdk.jdwp.agent jdk.jshell jdk.policytool jdk.rmic \
jdk.xml.bind jdk.xml.ws
ifeq ($(OPENJDK_TARGET_OS), windows) ifeq ($(OPENJDK_TARGET_OS), windows)
PROVIDER_MODULES += jdk.crypto.mscapi PROVIDER_MODULES += jdk.crypto.mscapi

View file

@ -137,7 +137,9 @@ ifeq ($(HAS_SPEC),)
# The spec files depend on the autoconf source code. This check makes sure # The spec files depend on the autoconf source code. This check makes sure
# the configuration is up to date after changes to configure. # the configuration is up to date after changes to configure.
$(SPECS): $(wildcard $(topdir)/common/autoconf/*) CUSTOM_CONFIG_DIR ?= $(topdir)/closed/autoconf
$(SPECS): $(wildcard $(topdir)/common/autoconf/*) $(wildcard $(CUSTOM_CONFIG_DIR)/*)
ifeq ($(CONF_CHECK), fail) ifeq ($(CONF_CHECK), fail)
@echo "Error: The configuration is not up to date for '$(lastword $(subst /, , $(dir $@)))'." @echo "Error: The configuration is not up to date for '$(lastword $(subst /, , $(dir $@)))'."
$(call PrintConfCheckFailed) $(call PrintConfCheckFailed)

View file

@ -107,6 +107,7 @@ $(eval $(call DeclareRecipesForPhase, GENSRC, \
JDK_GENSRC_TARGETS := $(filter %-gensrc-jdk, $(GENSRC_TARGETS)) JDK_GENSRC_TARGETS := $(filter %-gensrc-jdk, $(GENSRC_TARGETS))
LANGTOOLS_GENSRC_TARGETS := $(filter %-gensrc-langtools, $(GENSRC_TARGETS)) LANGTOOLS_GENSRC_TARGETS := $(filter %-gensrc-langtools, $(GENSRC_TARGETS))
CORBA_GENSRC_TARGETS := $(filter %-gensrc-corba, $(GENSRC_TARGETS)) CORBA_GENSRC_TARGETS := $(filter %-gensrc-corba, $(GENSRC_TARGETS))
HOTSPOT_GENSRC_TARGETS := $(filter %-gensrc-hotspot, $(GENSRC_TARGETS))
ALL_TARGETS += $(GENSRC_TARGETS) ALL_TARGETS += $(GENSRC_TARGETS)
@ -128,7 +129,8 @@ $(eval $(call DeclareRecipesForPhase, COPY, \
FILE_PREFIX := Copy, \ FILE_PREFIX := Copy, \
MAKE_SUBDIR := copy, \ MAKE_SUBDIR := copy, \
CHECK_MODULES := $(ALL_MODULES), \ CHECK_MODULES := $(ALL_MODULES), \
USE_WRAPPER := true)) USE_WRAPPER := true, \
MULTIPLE_MAKEFILES := true))
ALL_TARGETS += $(COPY_TARGETS) ALL_TARGETS += $(COPY_TARGETS)
@ -352,6 +354,8 @@ else
$(CORBA_GENSRC_TARGETS): interim-langtools $(CORBA_GENSRC_TARGETS): interim-langtools
$(HOTSPOT_GENSRC_TARGETS): interim-langtools
$(JDK_GENSRC_TARGETS): interim-langtools buildtools-jdk $(JDK_GENSRC_TARGETS): interim-langtools buildtools-jdk
$(GENDATA_TARGETS): interim-langtools buildtools-jdk $(GENDATA_TARGETS): interim-langtools buildtools-jdk
@ -415,6 +419,9 @@ else
# Explicitly add dependencies for special targets # Explicitly add dependencies for special targets
java.base-java: unpack-sec java.base-java: unpack-sec
# The copy target copies files generated by gensrc
java.base-copy-hotspot: java.base-gensrc-hotspot
jdk.jdeps-gendata: java rmic jdk.jdeps-gendata: java rmic
zip-security: java.base-java java.security.jgss-java java.security.jgss-libs \ zip-security: java.base-java java.security.jgss-java java.security.jgss-libs \

View file

@ -50,6 +50,8 @@ define CleanTest
@$(PRINTF) "Cleaning test $(strip $1) ..." @$(PRINTF) "Cleaning test $(strip $1) ..."
@$(PRINTF) "\n" $(LOG_DEBUG) @$(PRINTF) "\n" $(LOG_DEBUG)
$(RM) -r $(SUPPORT_OUTPUTDIR)/test/$(strip $(subst -,/,$1)) $(RM) -r $(SUPPORT_OUTPUTDIR)/test/$(strip $(subst -,/,$1))
# Remove as much of the test directory structure as is empty
$(RMDIR) -p $(dir $(SUPPORT_OUTPUTDIR)/test/$(strip $(subst -,/,$1))) 2> /dev/null || true
@$(PRINTF) " done\n" @$(PRINTF) " done\n"
endef endef
@ -108,7 +110,8 @@ endef
################################################################################ ################################################################################
MAKE_TOPDIR_LIST := $(JDK_TOPDIR) $(CORBA_TOPDIR) $(LANGTOOLS_TOPDIR) MAKE_TOPDIR_LIST := $(JDK_TOPDIR) $(CORBA_TOPDIR) $(LANGTOOLS_TOPDIR) \
$(HOTSPOT_TOPDIR)
MAKE_MAKEDIR_LIST := make MAKE_MAKEDIR_LIST := make
# Helper macro for DeclareRecipesForPhase # Helper macro for DeclareRecipesForPhase
@ -179,7 +182,7 @@ endef
# FILE_PREFIX : File prefix for this build phase # FILE_PREFIX : File prefix for this build phase
# USE_WRAPPER : Set to true to use ModuleWrapper.gmk # USE_WRAPPER : Set to true to use ModuleWrapper.gmk
# CHECK_MODULES : List of modules to try # CHECK_MODULES : List of modules to try
# MULTIPLE_MAKEFILES : Set to true to handle makefils for the same module in # MULTIPLE_MAKEFILES : Set to true to handle makefiles for the same module and
# phase in multiple repos # phase in multiple repos
# Exported variables: # Exported variables:
# $1_MODULES : All modules that had rules generated # $1_MODULES : All modules that had rules generated

View file

@ -59,6 +59,7 @@ FALSE_FIND_PATTERN:=-name FILE_NAME_THAT_DOESNT_EXIST
# FLAGS:=Flags to be supplied to javac # FLAGS:=Flags to be supplied to javac
# SERVER_DIR:=Use a javac server (-XDserver) and store the server related files here # SERVER_DIR:=Use a javac server (-XDserver) and store the server related files here
# SERVER_JVM:=Use this JVM for the server. Defaults to the JVM above. # SERVER_JVM:=Use this JVM for the server. Defaults to the JVM above.
# DISABLE_SJAVAC:=Set to true if this setup does not support sjavac
SetupJavaCompiler = $(NamedParamsMacroTemplate) SetupJavaCompiler = $(NamedParamsMacroTemplate)
define SetupJavaCompilerBody define SetupJavaCompilerBody
# The port file contains the tcp/ip on which the server listens # The port file contains the tcp/ip on which the server listens
@ -439,6 +440,7 @@ define SetupJavaCompilationBody
endif endif
$1_SJAVAC_PORTFILE := $$($$($1_SETUP)_SJAVAC_PORTFILE) $1_SJAVAC_PORTFILE := $$($$($1_SETUP)_SJAVAC_PORTFILE)
$1_SERVER_JVM := $$($$($1_SETUP)_SERVER_JVM) $1_SERVER_JVM := $$($$($1_SETUP)_SERVER_JVM)
$1_DISABLE_SJAVAC := $$($$($1_SETUP)_DISABLE_SJAVAC)
# Handle addons and overrides. # Handle addons and overrides.
$1_SRC:=$$(call ADD_SRCS,$$($1_SRC)) $1_SRC:=$$(call ADD_SRCS,$$($1_SRC))
@ -552,6 +554,15 @@ define SetupJavaCompilationBody
# and remove .java at the end. # and remove .java at the end.
$1_REWRITE_INTO_CLASSES:=$$(foreach i,$$($1_SRC),-e 's|$$i/||g') -e 's|/|.|g' -e 's|.java$$$$||g' $1_REWRITE_INTO_CLASSES:=$$(foreach i,$$($1_SRC),-e 's|$$i/||g') -e 's|/|.|g' -e 's|.java$$$$||g'
# Create SJAVAC variable from JAVAC variable. Expects $1_JAVAC to be
# "bootclasspathprepend -cp .../javac.jar com.sun.tools.javac.Main"
# and javac is simply replaced with sjavac.
$1_SJAVAC:=$$(subst com.sun.tools.javac.Main,com.sun.tools.sjavac.Main,$$($1_JAVAC))
# Set the $1_REMOTE to spawn a background javac server.
$1_REMOTE:=--server:portfile=$$($1_SJAVAC_PORTFILE),id=$1,sjavac=$$(subst \
$$(SPACE),%20,$$(subst $$(COMMA),%2C,$$(strip $$($1_SERVER_JVM) $$($1_SJAVAC))))
ifeq ($$($1_DISABLE_SJAVAC)x$$(ENABLE_SJAVAC),xyes) ifeq ($$($1_DISABLE_SJAVAC)x$$(ENABLE_SJAVAC),xyes)
ifneq (,$$($1_HEADERS)) ifneq (,$$($1_HEADERS))
$1_HEADERS_ARG := -h $$($1_HEADERS) $1_HEADERS_ARG := -h $$($1_HEADERS)
@ -560,15 +571,6 @@ define SetupJavaCompilationBody
# Using sjavac to compile. # Using sjavac to compile.
$1_COMPILE_TARGETS := $$($1_BIN)/_the.$1_batch $1_COMPILE_TARGETS := $$($1_BIN)/_the.$1_batch
# Create SJAVAC variable form JAVAC variable. Expects $1_JAVAC to be
# "bootclasspathprepend -cp .../javac.jar com.sun.tools.javac.Main"
# and javac is simply replaced with sjavac.
$1_SJAVAC:=$$(subst com.sun.tools.javac.Main,com.sun.tools.sjavac.Main,$$($1_JAVAC))
# Set the $1_REMOTE to spawn a background javac server.
$1_REMOTE:=--server:portfile=$$($1_SJAVAC_PORTFILE),id=$1,sjavac=$$(subst \
$$(SPACE),%20,$$(subst $$(COMMA),%2C,$$(strip $$($1_SERVER_JVM) $$($1_SJAVAC))))
$1_VARDEPS := $$($1_JVM) $$($1_SJAVAC) $$($1_SJAVAC_ARGS) $$($1_FLAGS) \ $1_VARDEPS := $$($1_JVM) $$($1_SJAVAC) $$($1_SJAVAC_ARGS) $$($1_FLAGS) \
$$($1_HEADERS_ARG) $$($1_BIN) $$($1_EXCLUDES) $$($1_INCLUDES) \ $$($1_HEADERS_ARG) $$($1_BIN) $$($1_EXCLUDES) $$($1_INCLUDES) \
$$($1_EXCLUDE_FILES) $$($1_INCLUDE_FILES) $$($1_EXCLUDE_FILES) $$($1_INCLUDE_FILES)
@ -632,13 +634,19 @@ define SetupJavaCompilationBody
$$($1_EXCLUDE_FILES) $$($1_INCLUDE_FILES) $$($1_EXCLUDE_FILES) $$($1_INCLUDE_FILES)
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_BIN)/_the.$1.vardeps) $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_BIN)/_the.$1.vardeps)
ifeq ($$($1_DISABLE_SJAVAC)x$(ENABLE_JAVAC_SERVER), xyes)
$1_JAVAC_CMD := $$($1_SJAVAC) $$($1_REMOTE)
else
$1_JAVAC_CMD := $$($1_JAVAC)
endif
# When not using sjavac, pass along all sources to javac using an @file. # When not using sjavac, pass along all sources to javac using an @file.
$$($1_BIN)/_the.$1_batch: $$($1_SRCS) $$($1_DEPENDS) $$($1_VARDEPS_FILE) $$($1_BIN)/_the.$1_batch: $$($1_SRCS) $$($1_DEPENDS) $$($1_VARDEPS_FILE)
$(MKDIR) -p $$(@D) $(MKDIR) -p $$(@D)
$$(eval $$(call ListPathsSafely,$1_SRCS, $$($1_BIN)/_the.$1_batch.tmp)) $$(eval $$(call ListPathsSafely,$1_SRCS, $$($1_BIN)/_the.$1_batch.tmp))
$(ECHO) Compiling `$(WC) $$($1_BIN)/_the.$1_batch.tmp | $(TR) -s ' ' | $(CUT) -f 2 -d ' '` files for $1 $(ECHO) Compiling `$(WC) $$($1_BIN)/_the.$1_batch.tmp | $(TR) -s ' ' | $(CUT) -f 2 -d ' '` files for $1
$(call LogFailures, $$($1_BIN)/_the.$$($1_SAFE_NAME)_batch.log, $$($1_SAFE_NAME), \ $(call LogFailures, $$($1_BIN)/_the.$$($1_SAFE_NAME)_batch.log, $$($1_SAFE_NAME), \
$$($1_JVM) $$($1_JAVAC) $$($1_FLAGS) \ $$($1_JVM) $$($1_JAVAC_CMD) $$($1_FLAGS) \
-implicit:none \ -implicit:none \
-d $$($1_BIN) $$($1_HEADERS_ARG) @$$($1_BIN)/_the.$1_batch.tmp) && \ -d $$($1_BIN) $$($1_HEADERS_ARG) @$$($1_BIN)/_the.$1_batch.tmp) && \
$(MV) $$($1_BIN)/_the.$1_batch.tmp $$($1_BIN)/_the.$1_batch $(MV) $$($1_BIN)/_the.$1_batch.tmp $$($1_BIN)/_the.$1_batch

View file

@ -640,7 +640,8 @@ DependOnVariableHelper = \
$(if $(findstring $(LOG_LEVEL), trace), \ $(if $(findstring $(LOG_LEVEL), trace), \
$(info NewVariable $1: >$(strip $($1))<) \ $(info NewVariable $1: >$(strip $($1))<) \
$(info OldVariable $1: >$(strip $($1_old))<)) \ $(info OldVariable $1: >$(strip $($1_old))<)) \
$(call WriteFile, $1_old:=$($1), $(call DependOnVariableFileName, $1, $2))) \ $(call WriteFile, $1_old:=$(call DoubleDollar,$($1)), \
$(call DependOnVariableFileName, $1, $2))) \
$(call DependOnVariableFileName, $1, $2) \ $(call DependOnVariableFileName, $1, $2) \
) )

View file

@ -33,6 +33,7 @@ include SetupJavaCompilers.gmk
# Module list macros # Module list macros
ALL_TOP_SRC_DIRS := \ ALL_TOP_SRC_DIRS := \
$(HOTSPOT_TOPDIR)/src \
$(JDK_TOPDIR)/src \ $(JDK_TOPDIR)/src \
$(LANGTOOLS_TOPDIR)/src \ $(LANGTOOLS_TOPDIR)/src \
$(CORBA_TOPDIR)/src \ $(CORBA_TOPDIR)/src \

View file

@ -38,7 +38,9 @@ JAVAC_WARNINGS := -Xlint:all -Werror
# and the interim javac, to be run by the boot jdk. # and the interim javac, to be run by the boot jdk.
$(eval $(call SetupJavaCompiler,BOOT_JAVAC, \ $(eval $(call SetupJavaCompiler,BOOT_JAVAC, \
JAVAC := $(JAVAC), \ JAVAC := $(JAVAC), \
FLAGS := -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -Werror)) FLAGS := -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -Werror, \
DISABLE_SJAVAC := true, \
))
# Any java code executed during a JDK build to build other parts of the JDK must be # Any java code executed during a JDK build to build other parts of the JDK must be
# executed by the bootstrap JDK (probably with -Xbootclasspath/p: ) and for this # executed by the bootstrap JDK (probably with -Xbootclasspath/p: ) and for this

View file

@ -49,9 +49,9 @@ ARCH := $(word 1,$(subst -, ,$(TARGET)))
# Define external dependencies # Define external dependencies
# Latest that could be made to work. # Latest that could be made to work.
gcc_ver := gcc-4.8.2 gcc_ver := gcc-4.9.2
binutils_ver := binutils-2.24 binutils_ver := binutils-2.25
ccache_ver := ccache-3.1.9 ccache_ver := ccache-3.2.1
mpfr_ver := mpfr-3.0.1 mpfr_ver := mpfr-3.0.1
gmp_ver := gmp-4.3.2 gmp_ver := gmp-4.3.2
mpc_ver := mpc-1.0.1 mpc_ver := mpc-1.0.1

View file

@ -32,10 +32,11 @@ VS_VERSION="2013"
VS_VERSION_NUM="12.0" VS_VERSION_NUM="12.0"
VS_VERSION_NUM_NODOT="120" VS_VERSION_NUM_NODOT="120"
SDK_VERSION="8.1" SDK_VERSION="8.1"
VS_VERSION_SP="SP4"
SCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)" SCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)"
BUILD_DIR="${SCRIPT_DIR}/../../build/devkit" BUILD_DIR="${SCRIPT_DIR}/../../build/devkit"
DEVKIT_ROOT="${BUILD_DIR}/VS${VS_VERSION}-devkit" DEVKIT_ROOT="${BUILD_DIR}/VS${VS_VERSION}${VS_VERSION_SP}-devkit"
DEVKIT_BUNDLE="${DEVKIT_ROOT}.tar.gz" DEVKIT_BUNDLE="${DEVKIT_ROOT}.tar.gz"
echo "Creating devkit in $DEVKIT_ROOT" echo "Creating devkit in $DEVKIT_ROOT"
@ -103,7 +104,7 @@ echo-info() {
echo "Generating devkit.info..." echo "Generating devkit.info..."
rm -f $DEVKIT_ROOT/devkit.info rm -f $DEVKIT_ROOT/devkit.info
echo-info "# This file describes to configure how to interpret the contents of this devkit" echo-info "# This file describes to configure how to interpret the contents of this devkit"
echo-info "DEVKIT_NAME=\"Microsoft Visual Studio $VS_VERSION (devkit)\"" echo-info "DEVKIT_NAME=\"Microsoft Visual Studio $VS_VERSION $VS_VERSION_SP (devkit)\""
echo-info "DEVKIT_VS_VERSION=\"$VS_VERSION\"" echo-info "DEVKIT_VS_VERSION=\"$VS_VERSION\""
echo-info "" echo-info ""
echo-info "DEVKIT_TOOLCHAIN_PATH_x86=\"\$DEVKIT_ROOT/VC/bin:\$DEVKIT_ROOT/$SDK_VERSION/bin/x86\"" echo-info "DEVKIT_TOOLCHAIN_PATH_x86=\"\$DEVKIT_ROOT/VC/bin:\$DEVKIT_ROOT/$SDK_VERSION/bin/x86\""

View file

@ -122,11 +122,18 @@ jprt.i586.fastdebugOpen.build.configure.args= \
jprt.i586.productOpen.build.configure.args= \ jprt.i586.productOpen.build.configure.args= \
${my.i586.default.build.configure.args} \ ${my.i586.default.build.configure.args} \
${jprt.productOpen.build.configure.args} ${jprt.productOpen.build.configure.args}
jprt.linux_i586.build.configure.args= \
--with-devkit=$GCC492_OEL64_HOME \
${jprt.i586.build.configure.args}
jprt.linux_x64.build.configure.args= \
--with-devkit=$GCC492_OEL64_HOME
jprt.windows_i586.build.configure.args= \ jprt.windows_i586.build.configure.args= \
--with-devkit=$VS2013_HOME \ --with-devkit=$VS2013SP4_HOME \
${jprt.i586.build.configure.args} ${jprt.i586.build.configure.args}
jprt.windows_x64.build.configure.args= \ jprt.windows_x64.build.configure.args= \
--with-devkit=$VS2013_HOME --with-devkit=$VS2013SP4_HOME
jprt.macosx_x64.build.configure.args= \
--with-devkit=$XCODE_511_HOME
######## ########
# #

View file

@ -39,6 +39,7 @@ TEST_LIB_SUPPORT := $(SUPPORT_OUTPUTDIR)/test/lib
$(eval $(call SetupJavaCompiler, BOOT_JAVAC_NOWARNINGS, \ $(eval $(call SetupJavaCompiler, BOOT_JAVAC_NOWARNINGS, \
JAVAC := $(JAVAC), \ JAVAC := $(JAVAC), \
FLAGS := -XDignore.symbol.file=true -g, \ FLAGS := -XDignore.symbol.file=true -g, \
DISABLE_SJAVAC := true, \
)) ))
$(eval $(call SetupJavaCompilation, BUILD_WB_JAR, \ $(eval $(call SetupJavaCompilation, BUILD_WB_JAR, \

View file

@ -237,6 +237,7 @@
<to>java.instrument</to> <to>java.instrument</to>
<to>jdk.jfr</to> <to>jdk.jfr</to>
<to>jdk.scripting.nashorn</to> <to>jdk.scripting.nashorn</to>
<to>jdk.vm.ci</to>
</export> </export>
<export> <export>
<name>jdk.internal.org.objectweb.asm.commons</name> <name>jdk.internal.org.objectweb.asm.commons</name>
@ -290,6 +291,7 @@
<to>jdk.security.auth</to> <to>jdk.security.auth</to>
<to>jdk.security.jgss</to> <to>jdk.security.jgss</to>
<to>jdk.snmp</to> <to>jdk.snmp</to>
<to>jdk.vm.ci</to>
<to>java.instrument</to> <to>java.instrument</to>
</export> </export>
<export> <export>
@ -787,6 +789,19 @@
<to>jdk.accessibility</to> <to>jdk.accessibility</to>
</export> </export>
</module> </module>
<module>
<name>jdk.jshell</name>
<depend>java.base</depend>
<depend re-exports="true">java.compiler</depend>
<depend>jdk.compiler</depend>
<depend>java.desktop</depend>
<depend>java.prefs</depend>
<depend>jdk.jdi</depend>
<depend>jdk.internal.le</depend>
<export>
<name>jdk.jshell</name>
</export>
</module>
<module> <module>
<name>java.instrument</name> <name>java.instrument</name>
<depend>java.base</depend> <depend>java.base</depend>
@ -1547,14 +1562,17 @@
</export> </export>
<export> <export>
<name>com.sun.tools.javac.api</name> <name>com.sun.tools.javac.api</name>
<to>jdk.jshell</to>
<to>jdk.javadoc</to> <to>jdk.javadoc</to>
</export> </export>
<export> <export>
<name>com.sun.tools.javac.code</name> <name>com.sun.tools.javac.code</name>
<to>jdk.jshell</to>
<to>jdk.javadoc</to> <to>jdk.javadoc</to>
</export> </export>
<export> <export>
<name>com.sun.tools.javac.comp</name> <name>com.sun.tools.javac.comp</name>
<to>jdk.jshell</to>
<to>jdk.javadoc</to> <to>jdk.javadoc</to>
</export> </export>
<export> <export>
@ -1564,16 +1582,22 @@
</export> </export>
<export> <export>
<name>com.sun.tools.javac.jvm</name> <name>com.sun.tools.javac.jvm</name>
<to>jdk.jshell</to>
<to>jdk.javadoc</to> <to>jdk.javadoc</to>
</export> </export>
<export> <export>
<name>com.sun.tools.javac.main</name> <name>com.sun.tools.javac.main</name>
<to>jdk.jshell</to>
<to>jdk.javadoc</to> <to>jdk.javadoc</to>
</export> </export>
<export> <export>
<name>com.sun.tools.javac.nio</name> <name>com.sun.tools.javac.nio</name>
<to>jdk.javadoc</to> <to>jdk.javadoc</to>
</export> </export>
<export>
<name>com.sun.tools.javac.parser</name>
<to>jdk.jshell</to>
</export>
<export> <export>
<name>com.sun.tools.javac.platform</name> <name>com.sun.tools.javac.platform</name>
<to>jdk.javadoc</to> <to>jdk.javadoc</to>
@ -1584,10 +1608,12 @@
</export> </export>
<export> <export>
<name>com.sun.tools.javac.tree</name> <name>com.sun.tools.javac.tree</name>
<to>jdk.jshell</to>
<to>jdk.javadoc</to> <to>jdk.javadoc</to>
</export> </export>
<export> <export>
<name>com.sun.tools.javac.util</name> <name>com.sun.tools.javac.util</name>
<to>jdk.jshell</to>
<to>jdk.javadoc</to> <to>jdk.javadoc</to>
<to>jdk.jdeps</to> <to>jdk.jdeps</to>
</export> </export>
@ -1648,22 +1674,27 @@
<depend>java.base</depend> <depend>java.base</depend>
<export> <export>
<name>jdk.internal.jline</name> <name>jdk.internal.jline</name>
<to>jdk.jshell</to>
<to>jdk.scripting.nashorn.shell</to> <to>jdk.scripting.nashorn.shell</to>
</export> </export>
<export> <export>
<name>jdk.internal.jline.console</name> <name>jdk.internal.jline.console</name>
<to>jdk.jshell</to>
<to>jdk.scripting.nashorn.shell</to> <to>jdk.scripting.nashorn.shell</to>
</export> </export>
<export> <export>
<name>jdk.internal.jline.console.completer</name> <name>jdk.internal.jline.console.completer</name>
<to>jdk.jshell</to>
<to>jdk.scripting.nashorn.shell</to> <to>jdk.scripting.nashorn.shell</to>
</export> </export>
<export> <export>
<name>jdk.internal.jline.console.history</name> <name>jdk.internal.jline.console.history</name>
<to>jdk.jshell</to>
<to>jdk.scripting.nashorn.shell</to> <to>jdk.scripting.nashorn.shell</to>
</export> </export>
<export> <export>
<name>jdk.internal.jline.internal</name> <name>jdk.internal.jline.internal</name>
<to>jdk.jshell</to>
<to>jdk.scripting.nashorn.shell</to> <to>jdk.scripting.nashorn.shell</to>
</export> </export>
</module> </module>
@ -1871,6 +1902,18 @@
<name>com.sun.security.jgss</name> <name>com.sun.security.jgss</name>
</export> </export>
</module> </module>
<module>
<name>jdk.vm.ci</name>
<depend>java.base</depend>
<export>
<name>jdk.vm.ci.hotspot</name>
<to>jdk.jfr</to>
</export>
<export>
<name>jdk.vm.ci.hotspot.events</name>
<to>jdk.jfr</to>
</export>
</module>
<module> <module>
<name>jdk.xml.bind</name> <name>jdk.xml.bind</name>
<depend>java.activation</depend> <depend>java.activation</depend>

View file

@ -67,6 +67,7 @@ import java.util.UUID;
public class LingeredApp { public class LingeredApp {
private static final long spinDelay = 1000; private static final long spinDelay = 1000;
private static final int appWaitTime = 100;
private final String lockFileName; private final String lockFileName;
private long lockCreationTime; private long lockCreationTime;
@ -111,6 +112,12 @@ public class LingeredApp {
this.storedAppOutput = new ArrayList<String>(); this.storedAppOutput = new ArrayList<String>();
} }
public LingeredApp() {
final String lockName = UUID.randomUUID().toString() + ".lck";
this.lockFileName = lockName;
this.storedAppOutput = new ArrayList<String>();
}
/** /**
* *
* @return name of lock file * @return name of lock file
@ -338,21 +345,18 @@ public class LingeredApp {
* High level interface for test writers * High level interface for test writers
*/ */
/** /**
* Factory method that creates SmartAppTest object with ready to use application * Factory method that creates LingeredApp object with ready to use application
* lock name is autogenerated, wait timeout is hardcoded * lock name is autogenerated
* @param cmd - vm options, could be null to auto add testvm.options * @param cmd - vm options, could be null to auto add testvm.options
* @return LingeredApp object * @return LingeredApp object
* @throws IOException * @throws IOException
*/ */
public static LingeredApp startApp(List<String> cmd) throws IOException { public static LingeredApp startApp(List<String> cmd) throws IOException {
final String lockName = UUID.randomUUID().toString() + ".lck"; LingeredApp a = new LingeredApp();
final int waitTime = 10;
LingeredApp a = new LingeredApp(lockName);
a.createLock(); a.createLock();
try { try {
a.runApp(cmd); a.runApp(cmd);
a.waitAppReady(waitTime); a.waitAppReady(appWaitTime);
} catch (Exception ex) { } catch (Exception ex) {
a.deleteLock(); a.deleteLock();
throw ex; throw ex;
@ -361,6 +365,26 @@ public class LingeredApp {
return a; return a;
} }
/**
* Factory method that starts pre-created LingeredApp
* lock name is autogenerated
* @param cmd - vm options, could be null to auto add testvm.options
* @param theApp - app to start
* @return LingeredApp object
* @throws IOException
*/
public static void startApp(List<String> cmd, LingeredApp theApp) throws IOException {
theApp.createLock();
try {
theApp.runApp(cmd);
theApp.waitAppReady(appWaitTime);
} catch (Exception ex) {
theApp.deleteLock();
throw ex;
}
}
public static LingeredApp startApp() throws IOException { public static LingeredApp startApp() throws IOException {
return startApp(null); return startApp(null);
} }

View file

@ -0,0 +1,81 @@
/*
* Copyright (c) 2005, 2015, 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package jdk.test.lib.apps;
import java.util.concurrent.Phaser;
public class LingeredAppWithDeadlock extends LingeredApp {
private static final Object Lock1 = new Object();
private static final Object Lock2 = new Object();
private static volatile int reachCount = 0;
private static final Phaser p = new Phaser(2);
private static class ThreadOne extends Thread {
public void run() {
// wait Lock2 is locked
p.arriveAndAwaitAdvance();
synchronized (Lock1) {
// signal Lock1 is locked
p.arriveAndAwaitAdvance();
synchronized (Lock2) {
reachCount += 1;
}
}
}
}
private static class ThreadTwo extends Thread {
public void run() {
synchronized (Lock2) {
// signal Lock2 is locked
p.arriveAndAwaitAdvance();
// wait Lock1 is locked
p.arriveAndAwaitAdvance();
synchronized (Lock1) {
reachCount += 1;
}
}
}
}
public static void main(String args[]) {
if (args.length != 1) {
System.err.println("Lock file name is not specified");
System.exit(7);
}
// Run two theads that should come to deadlock
new ThreadOne().start();
new ThreadTwo().start();
if (reachCount > 0) {
// Not able to deadlock, exiting
System.exit(3);
}
LingeredApp.main(args);
}
}

View file

@ -112,6 +112,12 @@ public class WhiteBox {
public native void forceSafepoint(); public native void forceSafepoint();
private native long getConstantPool0(Class<?> aClass);
public long getConstantPool(Class<?> aClass) {
Objects.requireNonNull(aClass);
return getConstantPool0(aClass);
}
// JVMTI // JVMTI
private native void addToBootstrapClassLoaderSearch0(String segment); private native void addToBootstrapClassLoaderSearch0(String segment);
public void addToBootstrapClassLoaderSearch(String segment){ public void addToBootstrapClassLoaderSearch(String segment){
@ -159,6 +165,7 @@ public class WhiteBox {
public native int NMTGetHashSize(); public native int NMTGetHashSize();
// Compiler // Compiler
public native int matchesMethod(Executable method, String pattern);
public native int deoptimizeFrames(boolean makeNotEntrant); public native int deoptimizeFrames(boolean makeNotEntrant);
public native void deoptimizeAll(); public native void deoptimizeAll();
public boolean isMethodCompiled(Executable method) { public boolean isMethodCompiled(Executable method) {
@ -288,6 +295,11 @@ public class WhiteBox {
public native void forceNMethodSweep(); public native void forceNMethodSweep();
public native Object[] getCodeHeapEntries(int type); public native Object[] getCodeHeapEntries(int type);
public native int getCompilationActivityMode(); public native int getCompilationActivityMode();
private native long getMethodData0(Executable method);
public long getMethodData(Executable method) {
Objects.requireNonNull(method);
return getMethodData0(method);
}
public native Object[] getCodeBlob(long addr); public native Object[] getCodeBlob(long addr);
// Intered strings // Intered strings

View file

@ -35,14 +35,16 @@ public class NMethod extends CodeBlob {
} }
private NMethod(Object[] obj) { private NMethod(Object[] obj) {
super((Object[])obj[0]); super((Object[])obj[0]);
assert obj.length == 4; assert obj.length == 5;
comp_level = (Integer) obj[1]; comp_level = (Integer) obj[1];
insts = (byte[]) obj[2]; insts = (byte[]) obj[2];
compile_id = (Integer) obj[3]; compile_id = (Integer) obj[3];
address = (Long) obj[4];
} }
public final byte[] insts; public final byte[] insts;
public final int comp_level; public final int comp_level;
public final int compile_id; public final int compile_id;
public final long address;
@Override @Override
public String toString() { public String toString() {
@ -51,6 +53,7 @@ public class NMethod extends CodeBlob {
+ ", insts=" + insts + ", insts=" + insts
+ ", comp_level=" + comp_level + ", comp_level=" + comp_level
+ ", compile_id=" + compile_id + ", compile_id=" + compile_id
+ ", address=" + address
+ '}'; + '}';
} }
} }

View file

@ -207,6 +207,12 @@ test-vardep:
test ! -e $(VARDEP_FLAG_FILE) test ! -e $(VARDEP_FLAG_FILE)
$(MAKE) -f $(THIS_FILE) VARDEP_TEST_VAR=" value3 foo" $(VARDEP_TARGET_FILE) $(MAKE) -f $(THIS_FILE) VARDEP_TEST_VAR=" value3 foo" $(VARDEP_TARGET_FILE)
test ! -e $(VARDEP_FLAG_FILE) test ! -e $(VARDEP_FLAG_FILE)
#
# Test including some problematic characters
$(MAKE) -f $(THIS_FILE) VARDEP_TEST_VAR='value4 \$$$$ORIGIN' $(VARDEP_TARGET_FILE)
$(RM) $(VARDEP_FLAG_FILE)
$(MAKE) -f $(THIS_FILE) VARDEP_TEST_VAR='value4 \$$$$ORIGIN' $(VARDEP_TARGET_FILE)
test ! -e $(VARDEP_FLAG_FILE)
# Test specifying a specific value file to store variable in # Test specifying a specific value file to store variable in
VARDEP_VALUE_FILE := $(VARDEP_DIR)/value-file VARDEP_VALUE_FILE := $(VARDEP_DIR)/value-file
@ -215,17 +221,15 @@ VARDEP_TEST_VAR2 := value3
VARDEP_RETURN_VALUE := $(call DependOnVariable, VARDEP_TEST_VAR2, $(VARDEP_VALUE_FILE)) VARDEP_RETURN_VALUE := $(call DependOnVariable, VARDEP_TEST_VAR2, $(VARDEP_VALUE_FILE))
$(eval $(call assert-equals, $(VARDEP_RETURN_VALUE), $(VARDEP_VALUE_FILE), \ $(eval $(call assert-equals, $(VARDEP_RETURN_VALUE), $(VARDEP_VALUE_FILE), \
Wrong filename returned)) Wrong filename returned))
VARDEP_FILE_CONTENTS := $(shell $(CAT) $(VARDEP_VALUE_FILE)) -include $(VARDEP_VALUE_FILE)
$(eval $(call assert-equals, $(VARDEP_FILE_CONTENTS), \ $(eval $(call assert-equals, $(VARDEP_TEST_VAR2_old), $(VARDEP_TEST_VAR2), \
VARDEP_TEST_VAR2_old:=$(VARDEP_TEST_VAR2), \
Wrong contents in vardeps file)) Wrong contents in vardeps file))
# Test with a variable value containing some problematic characters # Test with a variable value containing some problematic characters
VARDEP_TEST_VAR3 := foo '""' "''" bar VARDEP_TEST_VAR3 := foo '""' "''" bar \$$ORIGIN
VARDEP_VALUE_FILE := $(call DependOnVariable, VARDEP_TEST_VAR3) VARDEP_VALUE_FILE := $(call DependOnVariable, VARDEP_TEST_VAR3)
VARDEP_FILE_CONTENTS := $(shell $(CAT) $(VARDEP_VALUE_FILE)) -include $(VARDEP_VALUE_FILE)
$(eval $(call assert-equals, $(VARDEP_FILE_CONTENTS), \ $(eval $(call assert-equals, $(VARDEP_TEST_VAR3_old), $(VARDEP_TEST_VAR3), \
VARDEP_TEST_VAR3_old:=$(VARDEP_TEST_VAR3), \
Wrong contents in vardep file)) Wrong contents in vardep file))
TEST_TARGETS += test-vardep TEST_TARGETS += test-vardep