From d3ebf81e39f68d5945f00a9ff53df2b25762b2ad Mon Sep 17 00:00:00 2001 From: Leonid Mesnik Date: Tue, 7 Jun 2016 12:55:09 +0300 Subject: [PATCH 01/13] 8154209: Remove client VM from default JIB profile on windows-x86 and linux-x86 Reviewed-by: dholmes --- common/conf/jib-profiles.js | 5 ++--- make/jprt.properties | 8 ++++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/common/conf/jib-profiles.js b/common/conf/jib-profiles.js index 2d752fd1074..6eac8e428fa 100644 --- a/common/conf/jib-profiles.js +++ b/common/conf/jib-profiles.js @@ -254,7 +254,7 @@ var getJibProfilesProfiles = function (input, common) { build_cpu: "x64", dependencies: concat(common.dependencies, "devkit"), configure_args: concat(common.configure_args, common.configure_args_32bit, - "--with-jvm-variants=minimal,client,server", "--with-zlib=system"), + "--with-jvm-variants=minimal,server", "--with-zlib=system"), default_make_targets: common.default_make_targets }, @@ -295,8 +295,7 @@ var getJibProfilesProfiles = function (input, common) { target_cpu: "x86", build_cpu: "x64", dependencies: concat(common.dependencies, "devkit", "freetype"), - configure_args: concat(common.configure_args, - "--with-jvm-variants=client,server", common.configure_args_32bit), + configure_args: concat(common.configure_args, common.configure_args_32bit), default_make_targets: common.default_make_targets } }; diff --git a/make/jprt.properties b/make/jprt.properties index 93ccd1eb560..2130ae6b5db 100644 --- a/make/jprt.properties +++ b/make/jprt.properties @@ -75,7 +75,7 @@ jprt.windows.jdk9.target.attribute.compilerVS2013.appliesTo.builds=none jprt.macosx.jdk9.target.attribute.compilerXcode511.appliesTo.builds=none # Set up the run flavors (jvm variants) -jprt.run.flavors=c1,c2,default,${my.additional.run.flavors} +jprt.run.flavors=c2,default,${my.additional.run.flavors} # Setup jib profiles jprt.linux_i586.product.build.jib.profile=linux-x86 @@ -208,10 +208,10 @@ my.build.targets.default= \ my.test.target.set= \ solaris_sparcv9_5.11-product-c2-TESTNAME, \ solaris_x64_5.11-product-c2-TESTNAME, \ - linux_i586_3.8-product-{c1|c2}-TESTNAME, \ + linux_i586_3.8-product-c2-TESTNAME, \ linux_x64_3.8-product-c2-TESTNAME, \ macosx_x64_10.9-product-c2-TESTNAME, \ - windows_i586_6.3-product-c1-TESTNAME, \ + windows_i586_6.3-product-c2-TESTNAME, \ windows_x64_6.3-product-c2-TESTNAME # Default vm test targets (testset=default) @@ -296,7 +296,7 @@ my.make.rule.test.targets.pit= \ my.test.target.set.jck= \ solaris_sparcv9_5.11-product-c2-JCK7TESTRULE, \ solaris_x64_5.11-product-c2-JCK7TESTRULE, \ - linux_i586_3.8-product-c1-JCK7TESTRULE, \ + linux_i586_3.8-product-c2-JCK7TESTRULE, \ linux_x64_3.8-product-c2-JCK7TESTRULE # JCK testset targets From 008425f637e910bc833766a5a917d68f6b699573 Mon Sep 17 00:00:00 2001 From: Volker Simonis Date: Tue, 7 Jun 2016 18:25:53 +0200 Subject: [PATCH 02/13] 8158938: AIX: some more new hotspot build fixes Reviewed-by: erikj --- common/autoconf/build-performance.m4 | 3 +++ common/autoconf/flags.m4 | 10 +++++----- common/autoconf/generated-configure.sh | 22 +++++++++++++--------- common/autoconf/hotspot.m4 | 2 +- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/common/autoconf/build-performance.m4 b/common/autoconf/build-performance.m4 index 04944aec383..3987b7b4402 100644 --- a/common/autoconf/build-performance.m4 +++ b/common/autoconf/build-performance.m4 @@ -367,6 +367,9 @@ AC_DEFUN_ONCE([BPERF_SETUP_PRECOMPILED_HEADERS], elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then AC_MSG_RESULT([no, does not work with Solaris Studio]) USE_PRECOMPILED_HEADER=0 + elif test "x$TOOLCHAIN_TYPE" = xxlc; then + AC_MSG_RESULT([no, does not work with xlc]) + USE_PRECOMPILED_HEADER=0 else AC_MSG_RESULT([yes]) fi diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4 index bdcec6208f3..49013744d78 100644 --- a/common/autoconf/flags.m4 +++ b/common/autoconf/flags.m4 @@ -593,9 +593,9 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION], fi C_O_FLAG_NONE="-O0" elif test "x$TOOLCHAIN_TYPE" = xxlc; then - C_O_FLAG_HIGHEST_JVM="-O3" - C_O_FLAG_HIGHEST="-O3" - C_O_FLAG_HI="-O3 -qstrict" + C_O_FLAG_HIGHEST_JVM="-O3 -qhot=level=1 -qinline -qinlglue" + C_O_FLAG_HIGHEST="-O3 -qhot=level=1 -qinline -qinlglue" + C_O_FLAG_HI="-O3 -qinline -qinlglue" C_O_FLAG_NORM="-O2" C_O_FLAG_DEBUG="-qnoopt" # FIXME: Value below not verified. @@ -911,8 +911,8 @@ AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER], elif test "x$OPENJDK_$1_OS" = xaix; then $2JVM_CFLAGS="[$]$2JVM_CFLAGS -DAIX" # We may need '-qminimaltoc' or '-qpic=large -bbigtoc' if the TOC overflows. - $2JVM_CFLAGS="[$]$2JVM_CFLAGS -qtune=balanced -qhot=level=1 -qinline \ - -qinlglue -qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \ + $2JVM_CFLAGS="[$]$2JVM_CFLAGS -qtune=balanced \ + -qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \ -qlanglvl=noredefmac -qnortti -qnoeh -qignerrno" elif test "x$OPENJDK_$1_OS" = xbsd; then $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -D_ALLBSD_SOURCE" diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh index e4c2dab06f9..566a4873f43 100644 --- a/common/autoconf/generated-configure.sh +++ b/common/autoconf/generated-configure.sh @@ -5092,7 +5092,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=1464173584 +DATE_WHEN_GENERATED=1465316678 ############################################################################### # @@ -49613,9 +49613,9 @@ $as_echo "$supports" >&6; } fi C_O_FLAG_NONE="-O0" elif test "x$TOOLCHAIN_TYPE" = xxlc; then - C_O_FLAG_HIGHEST_JVM="-O3" - C_O_FLAG_HIGHEST="-O3" - C_O_FLAG_HI="-O3 -qstrict" + C_O_FLAG_HIGHEST_JVM="-O3 -qhot=level=1 -qinline -qinlglue" + C_O_FLAG_HIGHEST="-O3 -qhot=level=1 -qinline -qinlglue" + C_O_FLAG_HI="-O3 -qinline -qinlglue" C_O_FLAG_NORM="-O2" C_O_FLAG_DEBUG="-qnoopt" # FIXME: Value below not verified. @@ -50622,8 +50622,8 @@ $as_echo "$supports" >&6; } elif test "x$OPENJDK_TARGET_OS" = xaix; then JVM_CFLAGS="$JVM_CFLAGS -DAIX" # We may need '-qminimaltoc' or '-qpic=large -bbigtoc' if the TOC overflows. - JVM_CFLAGS="$JVM_CFLAGS -qtune=balanced -qhot=level=1 -qinline \ - -qinlglue -qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \ + JVM_CFLAGS="$JVM_CFLAGS -qtune=balanced \ + -qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \ -qlanglvl=noredefmac -qnortti -qnoeh -qignerrno" elif test "x$OPENJDK_TARGET_OS" = xbsd; then COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_ALLBSD_SOURCE" @@ -51427,8 +51427,8 @@ $as_echo "$supports" >&6; } elif test "x$OPENJDK_BUILD_OS" = xaix; then OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -DAIX" # We may need '-qminimaltoc' or '-qpic=large -bbigtoc' if the TOC overflows. - OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -qtune=balanced -qhot=level=1 -qinline \ - -qinlglue -qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \ + OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -qtune=balanced \ + -qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \ -qlanglvl=noredefmac -qnortti -qnoeh -qignerrno" elif test "x$OPENJDK_BUILD_OS" = xbsd; then OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -D_ALLBSD_SOURCE" @@ -53456,7 +53456,7 @@ $as_echo "yes, forced" >&6; } $as_echo "no, forced" >&6; } BUILD_GTEST="false" elif test "x$enable_hotspot_gtest" = "x"; then - if test "x$GTEST_DIR_EXISTS" = "xtrue"; then + if test "x$GTEST_DIR_EXISTS" = "xtrue" && test "x$OPENJDK_TARGET_OS" != "xaix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } BUILD_GTEST="true" @@ -66120,6 +66120,10 @@ $as_echo "no, does not work effectively with icecc" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, does not work with Solaris Studio" >&5 $as_echo "no, does not work with Solaris Studio" >&6; } USE_PRECOMPILED_HEADER=0 + elif test "x$TOOLCHAIN_TYPE" = xxlc; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, does not work with xlc" >&5 +$as_echo "no, does not work with xlc" >&6; } + USE_PRECOMPILED_HEADER=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } diff --git a/common/autoconf/hotspot.m4 b/common/autoconf/hotspot.m4 index 18b6ec0aa21..3886ea86f65 100644 --- a/common/autoconf/hotspot.m4 +++ b/common/autoconf/hotspot.m4 @@ -333,7 +333,7 @@ AC_DEFUN_ONCE([HOTSPOT_ENABLE_DISABLE_GTEST], AC_MSG_RESULT([no, forced]) BUILD_GTEST="false" elif test "x$enable_hotspot_gtest" = "x"; then - if test "x$GTEST_DIR_EXISTS" = "xtrue"; then + if test "x$GTEST_DIR_EXISTS" = "xtrue" && test "x$OPENJDK_TARGET_OS" != "xaix"; then AC_MSG_RESULT([yes]) BUILD_GTEST="true" else From cb2da4e3e760a61655debec5e07a23746d515b14 Mon Sep 17 00:00:00 2001 From: Volker Simonis Date: Tue, 7 Jun 2016 22:01:49 -0400 Subject: [PATCH 03/13] 8158763: --disable-hotspot-gtest not working on Solaris Reviewed-by: dholmes --- common/autoconf/generated-configure.sh | 8 ++++++-- common/autoconf/libraries.m4 | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh index 566a4873f43..5371b8c1985 100644 --- a/common/autoconf/generated-configure.sh +++ b/common/autoconf/generated-configure.sh @@ -5092,7 +5092,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=1465316678 +DATE_WHEN_GENERATED=1465351120 ############################################################################### # @@ -64600,12 +64600,16 @@ fi - if test "$OPENJDK_TARGET_OS" = "solaris"; then + if test "$OPENJDK_TARGET_OS" = "solaris" && test "x$BUILD_GTEST" = "xtrue"; then # Find the root of the Solaris Studio installation from the compiler path SOLARIS_STUDIO_DIR="$(dirname $CC)/.." STLPORT_LIB="$SOLARIS_STUDIO_DIR/lib/stlport4$OPENJDK_TARGET_CPU_ISADIR/libstlport.so.1" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libstlport.so.1" >&5 $as_echo_n "checking for libstlport.so.1... " >&6; } + if ! test -f "$STLPORT_LIB" && test "x$OPENJDK_TARGET_CPU_ISADIR" = "x/sparcv9"; then + # SS12u3 has libstlport under 'stlport4/v9' instead of 'stlport4/sparcv9' + STLPORT_LIB="$SOLARIS_STUDIO_DIR/lib/stlport4/v9/libstlport.so.1" + fi if test -f "$STLPORT_LIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, $STLPORT_LIB" >&5 $as_echo "yes, $STLPORT_LIB" >&6; } diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4 index 4238a17fe82..ce43d229dd7 100644 --- a/common/autoconf/libraries.m4 +++ b/common/autoconf/libraries.m4 @@ -197,11 +197,15 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS], ################################################################################ AC_DEFUN_ONCE([LIB_SETUP_SOLARIS_STLPORT], [ - if test "$OPENJDK_TARGET_OS" = "solaris"; then + if test "$OPENJDK_TARGET_OS" = "solaris" && test "x$BUILD_GTEST" = "xtrue"; then # Find the root of the Solaris Studio installation from the compiler path SOLARIS_STUDIO_DIR="$(dirname $CC)/.." STLPORT_LIB="$SOLARIS_STUDIO_DIR/lib/stlport4$OPENJDK_TARGET_CPU_ISADIR/libstlport.so.1" AC_MSG_CHECKING([for libstlport.so.1]) + if ! test -f "$STLPORT_LIB" && test "x$OPENJDK_TARGET_CPU_ISADIR" = "x/sparcv9"; then + # SS12u3 has libstlport under 'stlport4/v9' instead of 'stlport4/sparcv9' + STLPORT_LIB="$SOLARIS_STUDIO_DIR/lib/stlport4/v9/libstlport.so.1" + fi if test -f "$STLPORT_LIB"; then AC_MSG_RESULT([yes, $STLPORT_LIB]) BASIC_FIXUP_PATH([STLPORT_LIB]) From 0818ea7b6431b053c53ca428367a60a6c73582b0 Mon Sep 17 00:00:00 2001 From: Jon Masamitsu Date: Fri, 10 Jun 2016 11:40:02 -0700 Subject: [PATCH 04/13] 8026752: Cancel MetaspaceGC request for a CMS concurrent collection after GC Reviewed-by: sjohanss, sangheki --- test/lib/sun/hotspot/WhiteBox.java | 1 + 1 file changed, 1 insertion(+) diff --git a/test/lib/sun/hotspot/WhiteBox.java b/test/lib/sun/hotspot/WhiteBox.java index 690b07af0bd..7fd742b79c1 100644 --- a/test/lib/sun/hotspot/WhiteBox.java +++ b/test/lib/sun/hotspot/WhiteBox.java @@ -376,6 +376,7 @@ public class WhiteBox { public native void freeMetaspace(ClassLoader classLoader, long addr, long size); public native long incMetaspaceCapacityUntilGC(long increment); public native long metaspaceCapacityUntilGC(); + public native boolean metaspaceShouldConcurrentCollect(); // Force Young GC public native void youngGC(); From 511a5e6cbffbf7789ed3552aa2f51658ed257001 Mon Sep 17 00:00:00 2001 From: Leonid Mesnik Date: Fri, 17 Jun 2016 13:05:53 +0300 Subject: [PATCH 05/13] 8157831: JVMCI tests should not be executed on linux-arm32 Reviewed-by: dpochepk, dholmes --- test/jtreg-ext/requires/VMProps.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/jtreg-ext/requires/VMProps.java b/test/jtreg-ext/requires/VMProps.java index ef7de8faf39..468868a7989 100644 --- a/test/jtreg-ext/requires/VMProps.java +++ b/test/jtreg-ext/requires/VMProps.java @@ -52,10 +52,29 @@ public class VMProps implements Callable> { map.put("vm.flavor", vmFlavor()); map.put("vm.compMode", vmCompMode()); map.put("vm.bits", vmBits()); + map.put("vm.simpleArch", vmArch()); dump(map); return map; } + + /** + * @return vm.simpleArch value of "os.simpleArch" property of tested JDK. + */ + protected String vmArch() { + String arch = System.getProperty("os.arch"); + if (arch.equals("x86_64") || arch.equals("amd64")) { + return "x64"; + } + else if (arch.contains("86")) { + return "x86"; + } else { + return arch; + } + } + + + /** * @return VM type value extracted from the "java.vm.name" property. */ From 59e24cdba0d8d9c744bbc9b325f74d425eb0a37c Mon Sep 17 00:00:00 2001 From: Michail Chernov Date: Fri, 17 Jun 2016 18:45:24 +0300 Subject: [PATCH 06/13] 8158412: [TESTBUG] TestIHOPErgo and TestStressG1Humongous should not be executed when JFR is enabled Reviewed-by: dfazunen, tschatzl --- test/jtreg-ext/requires/VMProps.java | 30 +++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/test/jtreg-ext/requires/VMProps.java b/test/jtreg-ext/requires/VMProps.java index 468868a7989..7bb67f32828 100644 --- a/test/jtreg-ext/requires/VMProps.java +++ b/test/jtreg-ext/requires/VMProps.java @@ -23,6 +23,8 @@ package requires; import java.io.IOException; +import java.lang.management.ManagementFactory; +import java.lang.management.RuntimeMXBean; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; @@ -52,6 +54,7 @@ public class VMProps implements Callable> { map.put("vm.flavor", vmFlavor()); map.put("vm.compMode", vmCompMode()); map.put("vm.bits", vmBits()); + map.put("vm.flightRecorder", vmFlightRecorder()); map.put("vm.simpleArch", vmArch()); dump(map); return map; @@ -122,6 +125,27 @@ public class VMProps implements Callable> { return System.getProperty("sun.arch.data.model"); } + /** + * @return "true" if Flight Recorder is enabled, "false" if is disabled. + */ + protected String vmFlightRecorder() { + RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean(); + List arguments = runtimeMxBean.getInputArguments(); + if (arguments.contains("-XX:+UnlockCommercialFeatures")) { + if (arguments.contains("-XX:+FlightRecorder")) { + return "true"; + } + if (arguments.contains("-XX:-FlightRecorder")) { + return "false"; + } + if (arguments.stream() + .anyMatch(option -> option.startsWith("-XX:StartFlightRecording"))) { + return "true"; + } + } + return "false"; + } + /** * Dumps the map to the file if the file name is given as the property. * This functionality could be helpful to know context in the real @@ -135,9 +159,9 @@ public class VMProps implements Callable> { return; } List lines = new ArrayList<>(); - map.forEach((k,v) -> lines.add(k + ":" + v)); + map.forEach((k, v) -> lines.add(k + ":" + v)); try { - Files.write(Paths.get(dumpFileName), lines); + Files.write(Paths.get(dumpFileName), lines); } catch (IOException e) { throw new RuntimeException("Failed to dump properties into '" + dumpFileName + "'", e); @@ -150,6 +174,6 @@ public class VMProps implements Callable> { */ public static void main(String args[]) { Map map = new VMProps().call(); - map.forEach((k,v) -> System.out.println(k + ": '" + v + "'")); + map.forEach((k, v) -> System.out.println(k + ": '" + v + "'")); } } From 07a914f5bd4b01b95047dc1239152fb8937d4b57 Mon Sep 17 00:00:00 2001 From: Erik Joelsson Date: Tue, 28 Jun 2016 14:20:17 +0200 Subject: [PATCH 07/13] 8160285: Bootcycle builds are broken on jdk9/hs for windows i586 Reviewed-by: dholmes --- common/autoconf/boot-jdk.m4 | 52 +++++++++++++++-------- common/autoconf/bootcycle-spec.gmk.in | 2 + common/autoconf/generated-configure.sh | 57 ++++++++++++++++++-------- 3 files changed, 78 insertions(+), 33 deletions(-) diff --git a/common/autoconf/boot-jdk.m4 b/common/autoconf/boot-jdk.m4 index 77b5b38f4b6..1aded9e4486 100644 --- a/common/autoconf/boot-jdk.m4 +++ b/common/autoconf/boot-jdk.m4 @@ -359,25 +359,32 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS], # Starting amount of heap memory. ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA]) + BOOTCYCLE_JVM_ARGS_BIG=-Xms64M + + # Maximum amount of heap memory and stack size. + JVM_HEAP_LIMIT_32="1100" + # Running a 64 bit JVM allows for and requires a bigger heap + JVM_HEAP_LIMIT_64="1600" + STACK_SIZE_32=768 + STACK_SIZE_64=1536 + JVM_HEAP_LIMIT_GLOBAL=`expr $MEMORY_SIZE / 2` + if test "$JVM_HEAP_LIMIT_GLOBAL" -lt "$JVM_HEAP_LIMIT_32"; then + JVM_HEAP_LIMIT_32=$JVM_HEAP_LIMIT_GLOBAL + fi + if test "$JVM_HEAP_LIMIT_GLOBAL" -lt "$JVM_HEAP_LIMIT_64"; then + JVM_HEAP_LIMIT_64=$JVM_HEAP_LIMIT_GLOBAL + fi + if test "$JVM_HEAP_LIMIT_GLOBAL" -lt "512"; then + JVM_HEAP_LIMIT_32=512 + JVM_HEAP_LIMIT_64=512 + fi - # Maximum amount of heap memory. - # Maximum stack size. - JVM_MAX_HEAP=`expr $MEMORY_SIZE / 2` if test "x$BOOT_JDK_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 + STACK_SIZE=$STACK_SIZE_32 + JVM_MAX_HEAP=$JVM_HEAP_LIMIT_32 else - # Running a 64 bit JVM allows for and requires a bigger heap - 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 + STACK_SIZE=$STACK_SIZE_64 + JVM_MAX_HEAP=$JVM_HEAP_LIMIT_64 fi 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]) @@ -387,6 +394,19 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS], JAVA_FLAGS_BIG=$boot_jdk_jvmargs_big AC_SUBST(JAVA_FLAGS_BIG) + if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then + BOOTCYCLE_MAX_HEAP=$JVM_HEAP_LIMIT_32 + BOOTCYCLE_STACK_SIZE=$STACK_SIZE_32 + else + BOOTCYCLE_MAX_HEAP=$JVM_HEAP_LIMIT_64 + BOOTCYCLE_STACK_SIZE=$STACK_SIZE_64 + fi + BOOTCYCLE_JVM_ARGS_BIG="$BOOTCYCLE_JVM_ARGS_BIG -Xmx${BOOTCYCLE_MAX_HEAP}M" + BOOTCYCLE_JVM_ARGS_BIG="$BOOTCYCLE_JVM_ARGS_BIG -XX:ThreadStackSize=$BOOTCYCLE_STACK_SIZE" + AC_MSG_CHECKING([flags for bootcycle boot jdk java command for big workloads]) + AC_MSG_RESULT([$BOOTCYCLE_JVM_ARGS_BIG]) + AC_SUBST(BOOTCYCLE_JVM_ARGS_BIG) + # By default, the main javac compilations use big JAVA_FLAGS_JAVAC="$JAVA_FLAGS_BIG" AC_SUBST(JAVA_FLAGS_JAVAC) diff --git a/common/autoconf/bootcycle-spec.gmk.in b/common/autoconf/bootcycle-spec.gmk.in index c37097d1b1d..aa722761939 100644 --- a/common/autoconf/bootcycle-spec.gmk.in +++ b/common/autoconf/bootcycle-spec.gmk.in @@ -66,3 +66,5 @@ SJAVAC_SERVER_JAVA_CMD:=$(JAVA_CMD) ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) SJAVAC_SERVER_JAVA_FLAGS:= -Xms256M -Xmx1500M endif +# The bootcycle JVM arguments may differ from the original boot jdk. +JAVA_FLAGS_BIG := @BOOTCYCLE_JVM_ARGS_BIG@ diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh index 525a890bae3..049b8936829 100644 --- a/common/autoconf/generated-configure.sh +++ b/common/autoconf/generated-configure.sh @@ -644,6 +644,7 @@ SJAVAC_SERVER_JAVA JAVA_TOOL_FLAGS_SMALL JAVA_FLAGS_SMALL JAVA_FLAGS_JAVAC +BOOTCYCLE_JVM_ARGS_BIG JAVA_FLAGS_BIG JAVA_FLAGS TEST_JOBS @@ -5094,7 +5095,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=1467039751 +DATE_WHEN_GENERATED=1467116399 ############################################################################### # @@ -65118,25 +65119,32 @@ $as_echo_n "checking flags for boot jdk java command for big workloads... " >&6; JVM_ARG_OK=false fi + BOOTCYCLE_JVM_ARGS_BIG=-Xms64M + + # Maximum amount of heap memory and stack size. + JVM_HEAP_LIMIT_32="1100" + # Running a 64 bit JVM allows for and requires a bigger heap + JVM_HEAP_LIMIT_64="1600" + STACK_SIZE_32=768 + STACK_SIZE_64=1536 + JVM_HEAP_LIMIT_GLOBAL=`expr $MEMORY_SIZE / 2` + if test "$JVM_HEAP_LIMIT_GLOBAL" -lt "$JVM_HEAP_LIMIT_32"; then + JVM_HEAP_LIMIT_32=$JVM_HEAP_LIMIT_GLOBAL + fi + if test "$JVM_HEAP_LIMIT_GLOBAL" -lt "$JVM_HEAP_LIMIT_64"; then + JVM_HEAP_LIMIT_64=$JVM_HEAP_LIMIT_GLOBAL + fi + if test "$JVM_HEAP_LIMIT_GLOBAL" -lt "512"; then + JVM_HEAP_LIMIT_32=512 + JVM_HEAP_LIMIT_64=512 + fi - # Maximum amount of heap memory. - # Maximum stack size. - JVM_MAX_HEAP=`expr $MEMORY_SIZE / 2` if test "x$BOOT_JDK_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 + STACK_SIZE=$STACK_SIZE_32 + JVM_MAX_HEAP=$JVM_HEAP_LIMIT_32 else - # Running a 64 bit JVM allows for and requires a bigger heap - 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 + STACK_SIZE=$STACK_SIZE_64 + JVM_MAX_HEAP=$JVM_HEAP_LIMIT_64 fi $ECHO "Check if jvm arg is ok: -Xmx${JVM_MAX_HEAP}M" >&5 @@ -65175,6 +65183,21 @@ $as_echo "$boot_jdk_jvmargs_big" >&6; } JAVA_FLAGS_BIG=$boot_jdk_jvmargs_big + if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then + BOOTCYCLE_MAX_HEAP=$JVM_HEAP_LIMIT_32 + BOOTCYCLE_STACK_SIZE=$STACK_SIZE_32 + else + BOOTCYCLE_MAX_HEAP=$JVM_HEAP_LIMIT_64 + BOOTCYCLE_STACK_SIZE=$STACK_SIZE_64 + fi + BOOTCYCLE_JVM_ARGS_BIG="$BOOTCYCLE_JVM_ARGS_BIG -Xmx${BOOTCYCLE_MAX_HEAP}M" + BOOTCYCLE_JVM_ARGS_BIG="$BOOTCYCLE_JVM_ARGS_BIG -XX:ThreadStackSize=$BOOTCYCLE_STACK_SIZE" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for bootcycle boot jdk java command for big workloads" >&5 +$as_echo_n "checking flags for bootcycle boot jdk java command for big workloads... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOTCYCLE_JVM_ARGS_BIG" >&5 +$as_echo "$BOOTCYCLE_JVM_ARGS_BIG" >&6; } + + # By default, the main javac compilations use big JAVA_FLAGS_JAVAC="$JAVA_FLAGS_BIG" From 120b177a47b75e879c3bc3ebeb096e2493c681a1 Mon Sep 17 00:00:00 2001 From: Volker Simonis Date: Tue, 28 Jun 2016 16:04:03 +0200 Subject: [PATCH 08/13] 8160423: Serieal build is broken because of missing dependencies for jmod Reviewed-by: erikj --- make/Main.gmk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/make/Main.gmk b/make/Main.gmk index 7962a49722c..8c9bd9e5676 100644 --- a/make/Main.gmk +++ b/make/Main.gmk @@ -633,7 +633,9 @@ else # Jmods cannot be created until we have the jlink tool ready to run, which requires # all java modules to be compiled and jdk.jlink-launchers. - $(JMOD_TARGETS): java.base-libs jdk.jlink-launchers + # And we also need to copy jvm.cfg (done in java.base-copy) and tzdb.dat (done in + # java.base-gendata) to the appropriate location otherwise jimage, jlink and jmod won't start. + $(JMOD_TARGETS): java.base-libs java.base-copy java.base-gendata jdk.jlink-launchers # When creating a BUILDJDK, the java compilation has already been done by the # normal build and copied in. ifneq ($(CREATING_BUILDJDK), true) From af4dcf2bfed245c8de5b65187da17bd234edd5b3 Mon Sep 17 00:00:00 2001 From: Erik Joelsson Date: Wed, 29 Jun 2016 20:00:55 +0200 Subject: [PATCH 09/13] 8160571: Bootcycle builds still broken with server jvm on Windows 32bit Reviewed-by: tbell --- common/autoconf/boot-jdk.m4 | 2 +- common/autoconf/bootcycle-spec.gmk.in | 2 +- common/autoconf/generated-configure.sh | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/common/autoconf/boot-jdk.m4 b/common/autoconf/boot-jdk.m4 index 1aded9e4486..30dcf844a88 100644 --- a/common/autoconf/boot-jdk.m4 +++ b/common/autoconf/boot-jdk.m4 @@ -362,7 +362,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS], BOOTCYCLE_JVM_ARGS_BIG=-Xms64M # Maximum amount of heap memory and stack size. - JVM_HEAP_LIMIT_32="1100" + JVM_HEAP_LIMIT_32="1024" # Running a 64 bit JVM allows for and requires a bigger heap JVM_HEAP_LIMIT_64="1600" STACK_SIZE_32=768 diff --git a/common/autoconf/bootcycle-spec.gmk.in b/common/autoconf/bootcycle-spec.gmk.in index aa722761939..3c9c1dbe23b 100644 --- a/common/autoconf/bootcycle-spec.gmk.in +++ b/common/autoconf/bootcycle-spec.gmk.in @@ -64,7 +64,7 @@ SJAVAC_SERVER_JAVA_CMD:=$(JAVA_CMD) # When building a 32bit target, make sure the sjavac server flags are compatible # with a 32bit JVM. ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) - SJAVAC_SERVER_JAVA_FLAGS:= -Xms256M -Xmx1500M + SJAVAC_SERVER_JAVA_FLAGS := @BOOTCYCLE_JVM_ARGS_BIG@ endif # The bootcycle JVM arguments may differ from the original boot jdk. JAVA_FLAGS_BIG := @BOOTCYCLE_JVM_ARGS_BIG@ diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh index 049b8936829..97f0fa94202 100644 --- a/common/autoconf/generated-configure.sh +++ b/common/autoconf/generated-configure.sh @@ -5095,7 +5095,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=1467116399 +DATE_WHEN_GENERATED=1467223237 ############################################################################### # @@ -65122,7 +65122,7 @@ $as_echo_n "checking flags for boot jdk java command for big workloads... " >&6; BOOTCYCLE_JVM_ARGS_BIG=-Xms64M # Maximum amount of heap memory and stack size. - JVM_HEAP_LIMIT_32="1100" + JVM_HEAP_LIMIT_32="1024" # Running a 64 bit JVM allows for and requires a bigger heap JVM_HEAP_LIMIT_64="1600" STACK_SIZE_32=768 From 406e1b42a92e555ce91fa672b8b4c2f26babd7c0 Mon Sep 17 00:00:00 2001 From: Alejandro Murillo Date: Thu, 30 Jun 2016 22:10:08 +0000 Subject: [PATCH 10/13] Added tag jdk-9+125 for changeset 1f71a5d2b20b --- .hgtags-top-repo | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags-top-repo b/.hgtags-top-repo index 36b6337e14d..27eb593b749 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -367,3 +367,4 @@ cae471d3b87783e0a3deea658e1e1c84b2485b6c jdk-9+121 346be2df0f5b31d423807f53a719d1b9a67f3354 jdk-9+122 405d811c0d7b9b48ff718ae6c240b732f098c028 jdk-9+123 f80c841ae2545eaf9acd2724bccc305d98cefbe2 jdk-9+124 +9aa7d40f3a453f51e47f4c1b19eff5740a74a9f8 jdk-9+125 From 7076b38523d007792c5257148508dcd6bd6aadbb Mon Sep 17 00:00:00 2001 From: Erik Joelsson Date: Fri, 1 Jul 2016 17:03:59 +0200 Subject: [PATCH 11/13] 8160722: Module summary generation fails on Windows 32bit Reviewed-by: tbell --- common/autoconf/spec.gmk.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in index 706d5edcc59..8ddc28f53aa 100644 --- a/common/autoconf/spec.gmk.in +++ b/common/autoconf/spec.gmk.in @@ -578,7 +578,7 @@ SJAVAC_SERVER_JAVA=@FIXPATH@ @FIXPATH_DETACH_FLAG@ $(SJAVAC_SERVER_JAVA_CMD) \ JAVAC_FLAGS?=@JAVAC_FLAGS@ -BUILD_JAVA_FLAGS:=-Xms64M -Xmx1100M +BUILD_JAVA_FLAGS := @BOOTCYCLE_JVM_ARGS_BIG@ BUILD_JAVA=@FIXPATH@ $(BUILD_JDK)/bin/java $(BUILD_JAVA_FLAGS) # Use ?= as this can be overridden from bootcycle-spec.gmk From 5a7acbc027f92744f77eff5cbd3770c8d9b8af58 Mon Sep 17 00:00:00 2001 From: Erik Joelsson Date: Fri, 1 Jul 2016 18:29:24 +0200 Subject: [PATCH 12/13] 8160728: Update compare script to clean baseline Reviewed-by: tbell --- common/bin/compare.sh | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/common/bin/compare.sh b/common/bin/compare.sh index c1663fd8e4c..a54f1d4197c 100644 --- a/common/bin/compare.sh +++ b/common/bin/compare.sh @@ -102,10 +102,13 @@ diff_text() { # Ignore date strings in class files. # Anonymous lambda classes get randomly assigned counters in their names. if test "x$SUFFIX" = "xclass"; then - if [ "$NAME" = "module-info.class" ] || [ "$NAME" = "SystemModules.class" ] - then - # The SystemModules.class and module-info.class have several issues - # with random ordering of elements in HashSets. + if [ "$NAME" = "SystemModules.class" ]; then + # The SystemModules.class is not comparable. The way it is generated is + # too random. It can even be of different size for no apparent reason. + TMP="" + elif [ "$NAME" = "module-info.class" ]; then + # The module-info.class have several issues with random ordering of + # elements in HashSets. MODULES_CLASS_FILTER="$SED \ -e 's/,$//' \ -e 's/;$//' \ @@ -369,6 +372,14 @@ compare_general_files() { $CAT $OTHER_DIR/$f | eval "$HTML_FILTER" > $OTHER_FILE & $CAT $THIS_DIR/$f | eval "$HTML_FILTER" > $THIS_FILE & wait + elif [ "$f" = "./lib/classlist" ]; then + # The classlist files may have some lines in random order + OTHER_FILE=$WORK_DIR/$f.other + THIS_FILE=$WORK_DIR/$f.this + $MKDIR -p $(dirname $OTHER_FILE) $(dirname $THIS_FILE) + $RM $OTHER_FILE $THIS_FILE + $CAT $OTHER_DIR/$f | $SORT > $OTHER_FILE + $CAT $THIS_DIR/$f | $SORT > $THIS_FILE else OTHER_FILE=$OTHER_DIR/$f THIS_FILE=$THIS_DIR/$f @@ -651,7 +662,7 @@ compare_bin_file() { OTHER_DIZ_FILE=${OTHER_FILE_BASE}.diz else # Some files, jli.dll, appears twice in the image but only one of - # thme has a diz file next to it. + # them has a diz file next to it. OTHER_DIZ_FILE="$($FIND $OTHER_DIR -name $DIZ_NAME | $SED 1q)" if [ ! -f "$OTHER_DIZ_FILE" ]; then # As a last resort, look for diz file in the whole build output @@ -1335,6 +1346,24 @@ if [ "$SKIP_DEFAULT" != "true" ]; then OTHER_JDK="$OTHER/images/jdk" OTHER_JRE="$OTHER/images/jre" echo "Selecting jdk images for compare" + elif [ -d "$(ls -d $THIS/licensee-src/build/*/images/jdk)" ] \ + && [ -d "$(ls -d $OTHER/licensee-src/build/*/images/jdk)" ] + then + echo "Selecting licensee images for compare" + # Simply override the THIS and OTHER dir with the build dir from + # the nested licensee source build for the rest of the script + # execution. + OLD_THIS="$THIS" + OLD_OTHER="$OTHER" + THIS="$(ls -d $THIS/licensee-src/build/*)" + OTHER="$(ls -d $OTHER/licensee-src/build/*)" + THIS_JDK="$THIS/images/jdk" + THIS_JRE="$THIS/images/jre" + OTHER_JDK="$OTHER/images/jdk" + OTHER_JRE="$OTHER/images/jre" + # Rewrite the path to tools that are used from the build + JIMAGE="$(echo "$JIMAGE" | $SED "s|$OLD_THIS|$THIS|g")" + JAVAP="$(echo "$JAVAP" | $SED "s|$OLD_THIS|$THIS|g")" else echo "No common images found." exit 1 From d5efeccf785bfa3b98ca54fefc62af5c458e9463 Mon Sep 17 00:00:00 2001 From: Brian Burkhalter Date: Fri, 1 Jul 2016 12:57:12 -0700 Subject: [PATCH 13/13] 8160018: (fs) Remove GioFileTypeDetector on Solaris Remove the GioFileTypeDetector from the chain of FileTypeDetectors provided by SolarisFileSystemProvider. Reviewed-by: rriggs --- make/CompileJavaModules.gmk | 4 ---- 1 file changed, 4 deletions(-) diff --git a/make/CompileJavaModules.gmk b/make/CompileJavaModules.gmk index 55c91f1dc61..ed603cd8717 100644 --- a/make/CompileJavaModules.gmk +++ b/make/CompileJavaModules.gmk @@ -55,10 +55,6 @@ java.base_EXCLUDES += java/lang/doc-files # data files and shouldn't go in the product java.base_EXCLUDE_FILES += sun/text/resources/BreakIteratorRules.java -ifeq ($(OPENJDK_TARGET_OS), macosx) - java.base_EXCLUDE_FILES += sun/nio/fs/GnomeFileTypeDetector.java -endif - ifneq ($(filter solaris macosx linux windows,$(OPENJDK_TARGET_OS)), ) java.base_EXCLUDE_FILES += \ sun/nio/ch/AbstractPollSelectorImpl.java \