--- a/common/autoconf/boot-jdk.m4 Fri Aug 29 12:02:20 2014 +0200
+++ b/common/autoconf/boot-jdk.m4 Fri Aug 29 13:30:42 2014 +0200
@@ -370,18 +370,27 @@
# Maximum amount of heap memory.
# Maximum stack size.
+ JVM_MAX_HEAP=`expr $MEMORY_SIZE / 2`
if test "x$BUILD_NUM_BITS" = x32; then
- JVM_MAX_HEAP=1100M
+ if test "$JVM_MAX_HEAP" -gt "1100"; then
+ JVM_MAX_HEAP=1100
+ elif test "$JVM_MAX_HEAP" -lt "512"; then
+ JVM_MAX_HEAP=512
+ fi
STACK_SIZE=768
else
# Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit
# 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
- JVM_MAX_HEAP=1600M
+ if test "$JVM_MAX_HEAP" -gt "1600"; then
+ JVM_MAX_HEAP=1600
+ elif test "$JVM_MAX_HEAP" -lt "512"; then
+ JVM_MAX_HEAP=512
+ fi
STACK_SIZE=1536
fi
- ADD_JVM_ARG_IF_OK([-Xmx$JVM_MAX_HEAP],boot_jdk_jvmargs_big,[$JAVA])
+ ADD_JVM_ARG_IF_OK([-Xmx${JVM_MAX_HEAP}M],boot_jdk_jvmargs_big,[$JAVA])
ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],boot_jdk_jvmargs_big,[$JAVA])
AC_MSG_RESULT([$boot_jdk_jvmargs_big])
--- a/common/autoconf/build-performance.m4 Fri Aug 29 12:02:20 2014 +0200
+++ b/common/autoconf/build-performance.m4 Fri Aug 29 13:30:42 2014 +0200
@@ -131,8 +131,8 @@
if test "x$with_jobs" = x; then
# Number of jobs was not specified, calculate.
AC_MSG_CHECKING([for appropriate number of jobs to run in parallel])
- # Approximate memory in GB, rounding up a bit.
- memory_gb=`expr $MEMORY_SIZE / 1100`
+ # Approximate memory in GB.
+ memory_gb=`expr $MEMORY_SIZE / 1024`
# Pick the lowest of memory in gb and number of cores.
if test "$memory_gb" -lt "$NUM_CORES"; then
JOBS="$memory_gb"
@@ -291,16 +291,11 @@
AC_MSG_ERROR([Could not execute server java: $SJAVAC_SERVER_JAVA])
fi
else
- SJAVAC_SERVER_JAVA=""
- # Hotspot specific options.
- ADD_JVM_ARG_IF_OK([-verbosegc],SJAVAC_SERVER_JAVA,[$JAVA])
- # JRockit specific options.
- ADD_JVM_ARG_IF_OK([-Xverbose:gc],SJAVAC_SERVER_JAVA,[$JAVA])
- SJAVAC_SERVER_JAVA="$JAVA $SJAVAC_SERVER_JAVA"
+ SJAVAC_SERVER_JAVA="$JAVA"
fi
AC_SUBST(SJAVAC_SERVER_JAVA)
- if test "$MEMORY_SIZE" -gt "2500"; then
+ if test "$MEMORY_SIZE" -gt "3000"; then
ADD_JVM_ARG_IF_OK([-d64],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA])
if test "$JVM_ARG_OK" = true; then
JVM_64BIT=true
@@ -308,34 +303,33 @@
fi
fi
+ MX_VALUE=`expr $MEMORY_SIZE / 2`
if test "$JVM_64BIT" = true; then
- if test "$MEMORY_SIZE" -gt "17000"; then
- ADD_JVM_ARG_IF_OK([-Xms10G -Xmx10G],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA])
+ # Set ms lower than mx since more than one instance of the server might
+ # get launched at the same time before they figure out which instance won.
+ MS_VALUE=512
+ if test "$MX_VALUE" -gt "2048"; then
+ MX_VALUE=2048
fi
- if test "$MEMORY_SIZE" -gt "10000" && test "$JVM_ARG_OK" = false; then
- ADD_JVM_ARG_IF_OK([-Xms6G -Xmx6G],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA])
- fi
- if test "$MEMORY_SIZE" -gt "5000" && test "$JVM_ARG_OK" = false; then
- ADD_JVM_ARG_IF_OK([-Xms1G -Xmx3G],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA])
- fi
- if test "$MEMORY_SIZE" -gt "3800" && test "$JVM_ARG_OK" = false; then
- ADD_JVM_ARG_IF_OK([-Xms1G -Xmx2500M],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA])
+ else
+ MS_VALUE=256
+ if test "$MX_VALUE" -gt "1500"; then
+ MX_VALUE=1500
fi
fi
- if test "$MEMORY_SIZE" -gt "2500" && test "$JVM_ARG_OK" = false; then
- ADD_JVM_ARG_IF_OK([-Xms1000M -Xmx1500M],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA])
- fi
- if test "$MEMORY_SIZE" -gt "1000" && test "$JVM_ARG_OK" = false; then
- ADD_JVM_ARG_IF_OK([-Xms400M -Xmx1100M],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA])
+ if test "$MX_VALUE" -lt "512"; then
+ MX_VALUE=512
fi
- if test "$JVM_ARG_OK" = false; then
- ADD_JVM_ARG_IF_OK([-Xms256M -Xmx512M],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA])
- fi
+ ADD_JVM_ARG_IF_OK([-Xms${MS_VALUE}M -Xmx${MX_VALUE}M],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA])
- AC_MSG_CHECKING([whether to use sjavac])
AC_ARG_ENABLE([sjavac], [AS_HELP_STRING([--enable-sjavac],
[use sjavac to do fast incremental compiles @<:@disabled@:>@])],
[ENABLE_SJAVAC="${enableval}"], [ENABLE_SJAVAC='no'])
+ if test "x$JVM_ARG_OK" = "xfalse"; then
+ AC_MSG_WARN([Could not set -Xms${MS_VALUE}M -Xmx${MX_VALUE}M, disabling sjavac])
+ ENABLE_SJAVAC=no;
+ fi
+ AC_MSG_CHECKING([whether to use sjavac])
AC_MSG_RESULT([$ENABLE_SJAVAC])
AC_SUBST(ENABLE_SJAVAC)
--- a/common/autoconf/configure.ac Fri Aug 29 12:02:20 2014 +0200
+++ b/common/autoconf/configure.ac Fri Aug 29 13:30:42 2014 +0200
@@ -142,7 +142,6 @@
###############################################################################
BOOTJDK_SETUP_BOOT_JDK
-BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS
###############################################################################
#
@@ -233,6 +232,9 @@
BPERF_SETUP_BUILD_MEMORY
BPERF_SETUP_BUILD_JOBS
+# Setup arguments for the boot jdk (after cores and memory have been setup)
+BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS
+
# Setup smart javac (after cores and memory have been setup)
BPERF_SETUP_SMART_JAVAC
--- a/common/autoconf/generated-configure.sh Fri Aug 29 12:02:20 2014 +0200
+++ b/common/autoconf/generated-configure.sh Fri Aug 29 13:30:42 2014 +0200
@@ -634,6 +634,10 @@
SJAVAC_SERVER_DIR
ENABLE_SJAVAC
SJAVAC_SERVER_JAVA
+JAVA_TOOL_FLAGS_SMALL
+JAVA_FLAGS_SMALL
+JAVA_FLAGS_BIG
+JAVA_FLAGS
JOBS
MEMORY_SIZE
NUM_CORES
@@ -805,10 +809,6 @@
JAXP_TOPDIR
CORBA_TOPDIR
LANGTOOLS_TOPDIR
-JAVA_TOOL_FLAGS_SMALL
-JAVA_FLAGS_SMALL
-JAVA_FLAGS_BIG
-JAVA_FLAGS
JAVAC_FLAGS
BOOT_JDK_SOURCETARGET
JARSIGNER
@@ -1064,7 +1064,6 @@
with_user_release_suffix
with_build_number
with_boot_jdk
-with_boot_jdk_jvmargs
with_add_source_root
with_override_source_root
with_adds_and_overrides
@@ -1106,6 +1105,7 @@
with_num_cores
with_memory_size
with_jobs
+with_boot_jdk_jvmargs
with_sjavac_server_java
enable_sjavac
enable_precompiled_headers
@@ -1904,10 +1904,6 @@
number is not set.[username_builddateb00]
--with-build-number Set build number value for build [b00]
--with-boot-jdk path to Boot JDK (used to bootstrap build) [probed]
- --with-boot-jdk-jvmargs specify JVM arguments to be passed to all java
- invocations of boot JDK, overriding the default
- values, e.g --with-boot-jdk-jvmargs="-Xmx8G
- -enableassertions"
--with-add-source-root for each and every source directory, look in this
additional source root for the same directory; if it
exists and have files in it, include it in the build
@@ -1979,6 +1975,10 @@
--with-memory-size=1024 [probed]
--with-jobs number of parallel jobs to let make run [calculated
based on cores and memory]
+ --with-boot-jdk-jvmargs specify JVM arguments to be passed to all java
+ invocations of boot JDK, overriding the default
+ values, e.g --with-boot-jdk-jvmargs="-Xmx8G
+ -enableassertions"
--with-sjavac-server-java
use this java binary for running the sjavac
background server [Boot JDK java]
@@ -4321,7 +4321,7 @@
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1409306485
+DATE_WHEN_GENERATED=1409311712
###############################################################################
#
@@ -26320,197 +26320,6 @@
- ##############################################################################
- #
- # Specify jvm options for anything that is run with the Boot JDK.
- # Not all JVM:s accept the same arguments on the command line.
- #
-
-# Check whether --with-boot-jdk-jvmargs was given.
-if test "${with_boot_jdk_jvmargs+set}" = set; then :
- withval=$with_boot_jdk_jvmargs;
-fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for boot jdk java command " >&5
-$as_echo_n "checking flags for boot jdk java command ... " >&6; }
-
- # Disable special log output when a debug build is used as Boot JDK...
-
- $ECHO "Check if jvm arg is ok: -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput" >&5
- $ECHO "Command: $JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version" >&5
- OUTPUT=`$JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
-
- # Apply user provided options.
-
- $ECHO "Check if jvm arg is ok: $with_boot_jdk_jvmargs" >&5
- $ECHO "Command: $JAVA $with_boot_jdk_jvmargs -version" >&5
- OUTPUT=`$JAVA $with_boot_jdk_jvmargs -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- boot_jdk_jvmargs="$boot_jdk_jvmargs $with_boot_jdk_jvmargs"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $boot_jdk_jvmargs" >&5
-$as_echo "$boot_jdk_jvmargs" >&6; }
-
- # For now, general JAVA_FLAGS are the same as the boot jdk jvmargs
- JAVA_FLAGS=$boot_jdk_jvmargs
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for boot jdk java command for big workloads" >&5
-$as_echo_n "checking flags for boot jdk java command for big workloads... " >&6; }
-
- # Starting amount of heap memory.
-
- $ECHO "Check if jvm arg is ok: -Xms64M" >&5
- $ECHO "Command: $JAVA -Xms64M -version" >&5
- OUTPUT=`$JAVA -Xms64M -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -Xms64M"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
-
- # Maximum amount of heap memory.
- # Maximum stack size.
- if test "x$BUILD_NUM_BITS" = x32; then
- JVM_MAX_HEAP=1100M
- STACK_SIZE=768
- else
- # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit
- # 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
- JVM_MAX_HEAP=1600M
- STACK_SIZE=1536
- fi
-
- $ECHO "Check if jvm arg is ok: -Xmx$JVM_MAX_HEAP" >&5
- $ECHO "Command: $JAVA -Xmx$JVM_MAX_HEAP -version" >&5
- OUTPUT=`$JAVA -Xmx$JVM_MAX_HEAP -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -Xmx$JVM_MAX_HEAP"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
-
- $ECHO "Check if jvm arg is ok: -XX:ThreadStackSize=$STACK_SIZE" >&5
- $ECHO "Command: $JAVA -XX:ThreadStackSize=$STACK_SIZE -version" >&5
- OUTPUT=`$JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -XX:ThreadStackSize=$STACK_SIZE"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $boot_jdk_jvmargs_big" >&5
-$as_echo "$boot_jdk_jvmargs_big" >&6; }
-
- JAVA_FLAGS_BIG=$boot_jdk_jvmargs_big
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for boot jdk java command for small workloads" >&5
-$as_echo_n "checking flags for boot jdk java command for small workloads... " >&6; }
-
- # Use serial gc for small short lived tools if possible
-
- $ECHO "Check if jvm arg is ok: -XX:+UseSerialGC" >&5
- $ECHO "Command: $JAVA -XX:+UseSerialGC -version" >&5
- OUTPUT=`$JAVA -XX:+UseSerialGC -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- boot_jdk_jvmargs_small="$boot_jdk_jvmargs_small -XX:+UseSerialGC"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
-
- $ECHO "Check if jvm arg is ok: -Xms32M" >&5
- $ECHO "Command: $JAVA -Xms32M -version" >&5
- OUTPUT=`$JAVA -Xms32M -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- boot_jdk_jvmargs_small="$boot_jdk_jvmargs_small -Xms32M"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
-
- $ECHO "Check if jvm arg is ok: -Xmx512M" >&5
- $ECHO "Command: $JAVA -Xmx512M -version" >&5
- OUTPUT=`$JAVA -Xmx512M -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- boot_jdk_jvmargs_small="$boot_jdk_jvmargs_small -Xmx512M"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $boot_jdk_jvmargs_small" >&5
-$as_echo "$boot_jdk_jvmargs_small" >&6; }
-
- JAVA_FLAGS_SMALL=$boot_jdk_jvmargs_small
-
-
- JAVA_TOOL_FLAGS_SMALL=""
- for f in $JAVA_FLAGS_SMALL; do
- JAVA_TOOL_FLAGS_SMALL="$JAVA_TOOL_FLAGS_SMALL -J$f"
- done
-
-
-
###############################################################################
#
# Configure the sources to use. We can add or override individual directories.
@@ -49887,8 +49696,8 @@
# Number of jobs was not specified, calculate.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for appropriate number of jobs to run in parallel" >&5
$as_echo_n "checking for appropriate number of jobs to run in parallel... " >&6; }
- # Approximate memory in GB, rounding up a bit.
- memory_gb=`expr $MEMORY_SIZE / 1100`
+ # Approximate memory in GB.
+ memory_gb=`expr $MEMORY_SIZE / 1024`
# Pick the lowest of memory in gb and number of cores.
if test "$memory_gb" -lt "$NUM_CORES"; then
JOBS="$memory_gb"
@@ -49914,6 +49723,208 @@
+# Setup arguments for the boot jdk (after cores and memory have been setup)
+
+ ##############################################################################
+ #
+ # Specify jvm options for anything that is run with the Boot JDK.
+ # Not all JVM:s accept the same arguments on the command line.
+ #
+
+# Check whether --with-boot-jdk-jvmargs was given.
+if test "${with_boot_jdk_jvmargs+set}" = set; then :
+ withval=$with_boot_jdk_jvmargs;
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for boot jdk java command " >&5
+$as_echo_n "checking flags for boot jdk java command ... " >&6; }
+
+ # Disable special log output when a debug build is used as Boot JDK...
+
+ $ECHO "Check if jvm arg is ok: -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput" >&5
+ $ECHO "Command: $JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version" >&5
+ OUTPUT=`$JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version 2>&1`
+ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
+ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
+ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+ boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput"
+ JVM_ARG_OK=true
+ else
+ $ECHO "Arg failed:" >&5
+ $ECHO "$OUTPUT" >&5
+ JVM_ARG_OK=false
+ fi
+
+
+ # Apply user provided options.
+
+ $ECHO "Check if jvm arg is ok: $with_boot_jdk_jvmargs" >&5
+ $ECHO "Command: $JAVA $with_boot_jdk_jvmargs -version" >&5
+ OUTPUT=`$JAVA $with_boot_jdk_jvmargs -version 2>&1`
+ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
+ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
+ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+ boot_jdk_jvmargs="$boot_jdk_jvmargs $with_boot_jdk_jvmargs"
+ JVM_ARG_OK=true
+ else
+ $ECHO "Arg failed:" >&5
+ $ECHO "$OUTPUT" >&5
+ JVM_ARG_OK=false
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $boot_jdk_jvmargs" >&5
+$as_echo "$boot_jdk_jvmargs" >&6; }
+
+ # For now, general JAVA_FLAGS are the same as the boot jdk jvmargs
+ JAVA_FLAGS=$boot_jdk_jvmargs
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for boot jdk java command for big workloads" >&5
+$as_echo_n "checking flags for boot jdk java command for big workloads... " >&6; }
+
+ # Starting amount of heap memory.
+
+ $ECHO "Check if jvm arg is ok: -Xms64M" >&5
+ $ECHO "Command: $JAVA -Xms64M -version" >&5
+ OUTPUT=`$JAVA -Xms64M -version 2>&1`
+ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
+ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
+ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+ boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -Xms64M"
+ JVM_ARG_OK=true
+ else
+ $ECHO "Arg failed:" >&5
+ $ECHO "$OUTPUT" >&5
+ JVM_ARG_OK=false
+ fi
+
+
+ # Maximum amount of heap memory.
+ # Maximum stack size.
+ JVM_MAX_HEAP=`expr $MEMORY_SIZE / 2`
+ if test "x$BUILD_NUM_BITS" = x32; then
+ if test "$JVM_MAX_HEAP" -gt "1100"; then
+ JVM_MAX_HEAP=1100
+ elif test "$JVM_MAX_HEAP" -lt "512"; then
+ JVM_MAX_HEAP=512
+ fi
+ STACK_SIZE=768
+ else
+ # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit
+ # 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
+ JVM_MAX_HEAP=1600
+ elif test "$JVM_MAX_HEAP" -lt "512"; then
+ JVM_MAX_HEAP=512
+ fi
+ STACK_SIZE=1536
+ fi
+
+ $ECHO "Check if jvm arg is ok: -Xmx${JVM_MAX_HEAP}M" >&5
+ $ECHO "Command: $JAVA -Xmx${JVM_MAX_HEAP}M -version" >&5
+ OUTPUT=`$JAVA -Xmx${JVM_MAX_HEAP}M -version 2>&1`
+ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
+ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
+ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+ boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -Xmx${JVM_MAX_HEAP}M"
+ JVM_ARG_OK=true
+ else
+ $ECHO "Arg failed:" >&5
+ $ECHO "$OUTPUT" >&5
+ JVM_ARG_OK=false
+ fi
+
+
+ $ECHO "Check if jvm arg is ok: -XX:ThreadStackSize=$STACK_SIZE" >&5
+ $ECHO "Command: $JAVA -XX:ThreadStackSize=$STACK_SIZE -version" >&5
+ OUTPUT=`$JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1`
+ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
+ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
+ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+ boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -XX:ThreadStackSize=$STACK_SIZE"
+ JVM_ARG_OK=true
+ else
+ $ECHO "Arg failed:" >&5
+ $ECHO "$OUTPUT" >&5
+ JVM_ARG_OK=false
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $boot_jdk_jvmargs_big" >&5
+$as_echo "$boot_jdk_jvmargs_big" >&6; }
+
+ JAVA_FLAGS_BIG=$boot_jdk_jvmargs_big
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for boot jdk java command for small workloads" >&5
+$as_echo_n "checking flags for boot jdk java command for small workloads... " >&6; }
+
+ # Use serial gc for small short lived tools if possible
+
+ $ECHO "Check if jvm arg is ok: -XX:+UseSerialGC" >&5
+ $ECHO "Command: $JAVA -XX:+UseSerialGC -version" >&5
+ OUTPUT=`$JAVA -XX:+UseSerialGC -version 2>&1`
+ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
+ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
+ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+ boot_jdk_jvmargs_small="$boot_jdk_jvmargs_small -XX:+UseSerialGC"
+ JVM_ARG_OK=true
+ else
+ $ECHO "Arg failed:" >&5
+ $ECHO "$OUTPUT" >&5
+ JVM_ARG_OK=false
+ fi
+
+
+ $ECHO "Check if jvm arg is ok: -Xms32M" >&5
+ $ECHO "Command: $JAVA -Xms32M -version" >&5
+ OUTPUT=`$JAVA -Xms32M -version 2>&1`
+ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
+ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
+ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+ boot_jdk_jvmargs_small="$boot_jdk_jvmargs_small -Xms32M"
+ JVM_ARG_OK=true
+ else
+ $ECHO "Arg failed:" >&5
+ $ECHO "$OUTPUT" >&5
+ JVM_ARG_OK=false
+ fi
+
+
+ $ECHO "Check if jvm arg is ok: -Xmx512M" >&5
+ $ECHO "Command: $JAVA -Xmx512M -version" >&5
+ OUTPUT=`$JAVA -Xmx512M -version 2>&1`
+ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
+ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
+ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+ boot_jdk_jvmargs_small="$boot_jdk_jvmargs_small -Xmx512M"
+ JVM_ARG_OK=true
+ else
+ $ECHO "Arg failed:" >&5
+ $ECHO "$OUTPUT" >&5
+ JVM_ARG_OK=false
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $boot_jdk_jvmargs_small" >&5
+$as_echo "$boot_jdk_jvmargs_small" >&6; }
+
+ JAVA_FLAGS_SMALL=$boot_jdk_jvmargs_small
+
+
+ JAVA_TOOL_FLAGS_SMALL=""
+ for f in $JAVA_FLAGS_SMALL; do
+ JAVA_TOOL_FLAGS_SMALL="$JAVA_TOOL_FLAGS_SMALL -J$f"
+ done
+
+
+
# Setup smart javac (after cores and memory have been setup)
@@ -49930,44 +49941,11 @@
as_fn_error $? "Could not execute server java: $SJAVAC_SERVER_JAVA" "$LINENO" 5
fi
else
- SJAVAC_SERVER_JAVA=""
- # Hotspot specific options.
-
- $ECHO "Check if jvm arg is ok: -verbosegc" >&5
- $ECHO "Command: $JAVA -verbosegc -version" >&5
- OUTPUT=`$JAVA -verbosegc -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -verbosegc"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
- # JRockit specific options.
-
- $ECHO "Check if jvm arg is ok: -Xverbose:gc" >&5
- $ECHO "Command: $JAVA -Xverbose:gc -version" >&5
- OUTPUT=`$JAVA -Xverbose:gc -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xverbose:gc"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
- SJAVAC_SERVER_JAVA="$JAVA $SJAVAC_SERVER_JAVA"
- fi
-
-
- if test "$MEMORY_SIZE" -gt "2500"; then
+ SJAVAC_SERVER_JAVA="$JAVA"
+ fi
+
+
+ if test "$MEMORY_SIZE" -gt "3000"; then
$ECHO "Check if jvm arg is ok: -d64" >&5
$ECHO "Command: $SJAVAC_SERVER_JAVA -d64 -version" >&5
@@ -49989,67 +49967,31 @@
fi
fi
+ MX_VALUE=`expr $MEMORY_SIZE / 2`
if test "$JVM_64BIT" = true; then
- if test "$MEMORY_SIZE" -gt "17000"; then
-
- $ECHO "Check if jvm arg is ok: -Xms10G -Xmx10G" >&5
- $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms10G -Xmx10G -version" >&5
- OUTPUT=`$SJAVAC_SERVER_JAVA -Xms10G -Xmx10G -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms10G -Xmx10G"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
- fi
- if test "$MEMORY_SIZE" -gt "10000" && test "$JVM_ARG_OK" = false; then
-
- $ECHO "Check if jvm arg is ok: -Xms6G -Xmx6G" >&5
- $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms6G -Xmx6G -version" >&5
- OUTPUT=`$SJAVAC_SERVER_JAVA -Xms6G -Xmx6G -version 2>&1`
+ # Set ms lower than mx since more than one instance of the server might
+ # get launched at the same time before they figure out which instance won.
+ MS_VALUE=512
+ if test "$MX_VALUE" -gt "2048"; then
+ MX_VALUE=2048
+ fi
+ else
+ MS_VALUE=256
+ if test "$MX_VALUE" -gt "1500"; then
+ MX_VALUE=1500
+ fi
+ fi
+ if test "$MX_VALUE" -lt "512"; then
+ MX_VALUE=512
+ fi
+
+ $ECHO "Check if jvm arg is ok: -Xms${MS_VALUE}M -Xmx${MX_VALUE}M" >&5
+ $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms${MS_VALUE}M -Xmx${MX_VALUE}M -version" >&5
+ OUTPUT=`$SJAVAC_SERVER_JAVA -Xms${MS_VALUE}M -Xmx${MX_VALUE}M -version 2>&1`
FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms6G -Xmx6G"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
- fi
- if test "$MEMORY_SIZE" -gt "5000" && test "$JVM_ARG_OK" = false; then
-
- $ECHO "Check if jvm arg is ok: -Xms1G -Xmx3G" >&5
- $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms1G -Xmx3G -version" >&5
- OUTPUT=`$SJAVAC_SERVER_JAVA -Xms1G -Xmx3G -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms1G -Xmx3G"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
- fi
- if test "$MEMORY_SIZE" -gt "3800" && test "$JVM_ARG_OK" = false; then
-
- $ECHO "Check if jvm arg is ok: -Xms1G -Xmx2500M" >&5
- $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms1G -Xmx2500M -version" >&5
- OUTPUT=`$SJAVAC_SERVER_JAVA -Xms1G -Xmx2500M -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms1G -Xmx2500M"
+ SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms${MS_VALUE}M -Xmx${MX_VALUE}M"
JVM_ARG_OK=true
else
$ECHO "Arg failed:" >&5
@@ -50057,62 +49999,7 @@
JVM_ARG_OK=false
fi
- fi
- fi
- if test "$MEMORY_SIZE" -gt "2500" && test "$JVM_ARG_OK" = false; then
-
- $ECHO "Check if jvm arg is ok: -Xms1000M -Xmx1500M" >&5
- $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms1000M -Xmx1500M -version" >&5
- OUTPUT=`$SJAVAC_SERVER_JAVA -Xms1000M -Xmx1500M -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms1000M -Xmx1500M"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
- fi
- if test "$MEMORY_SIZE" -gt "1000" && test "$JVM_ARG_OK" = false; then
-
- $ECHO "Check if jvm arg is ok: -Xms400M -Xmx1100M" >&5
- $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms400M -Xmx1100M -version" >&5
- OUTPUT=`$SJAVAC_SERVER_JAVA -Xms400M -Xmx1100M -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms400M -Xmx1100M"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
- fi
- if test "$JVM_ARG_OK" = false; then
-
- $ECHO "Check if jvm arg is ok: -Xms256M -Xmx512M" >&5
- $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms256M -Xmx512M -version" >&5
- OUTPUT=`$SJAVAC_SERVER_JAVA -Xms256M -Xmx512M -version 2>&1`
- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn`
- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""`
- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
- SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms256M -Xmx512M"
- JVM_ARG_OK=true
- else
- $ECHO "Arg failed:" >&5
- $ECHO "$OUTPUT" >&5
- JVM_ARG_OK=false
- fi
-
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use sjavac" >&5
-$as_echo_n "checking whether to use sjavac... " >&6; }
+
# Check whether --enable-sjavac was given.
if test "${enable_sjavac+set}" = set; then :
enableval=$enable_sjavac; ENABLE_SJAVAC="${enableval}"
@@ -50120,6 +50007,13 @@
ENABLE_SJAVAC='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 sjavac" >&5
+$as_echo "$as_me: WARNING: Could not set -Xms${MS_VALUE}M -Xmx${MX_VALUE}M, disabling sjavac" >&2;}
+ ENABLE_SJAVAC=no;
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use sjavac" >&5
+$as_echo_n "checking whether to use sjavac... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENABLE_SJAVAC" >&5
$as_echo "$ENABLE_SJAVAC" >&6; }