changeset 2166:c073cf42ffd2

Merge
author amurillo
date Fri, 01 Jul 2016 16:55:44 -0700
parents 3f5fa41ad7f3 ebee719811fd
children 177fbeb6fdef
files
diffstat 9 files changed, 126 insertions(+), 49 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Fri Jul 01 12:32:21 2016 +0200
+++ b/.hgtags	Fri Jul 01 16:55:44 2016 -0700
@@ -367,3 +367,4 @@
 346be2df0f5b31d423807f53a719d1b9a67f3354 jdk-9+122
 405d811c0d7b9b48ff718ae6c240b732f098c028 jdk-9+123
 f80c841ae2545eaf9acd2724bccc305d98cefbe2 jdk-9+124
+9aa7d40f3a453f51e47f4c1b19eff5740a74a9f8 jdk-9+125
--- a/common/autoconf/boot-jdk.m4	Fri Jul 01 12:32:21 2016 +0200
+++ b/common/autoconf/boot-jdk.m4	Fri Jul 01 16:55:44 2016 -0700
@@ -359,25 +359,32 @@
 
   # 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.
-  # Maximum stack size.
-  JVM_MAX_HEAP=`expr $MEMORY_SIZE / 2`
+  # Maximum amount of heap memory and stack size.
+  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
+  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
+
   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 @@
   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)
--- a/common/autoconf/bootcycle-spec.gmk.in	Fri Jul 01 12:32:21 2016 +0200
+++ b/common/autoconf/bootcycle-spec.gmk.in	Fri Jul 01 16:55:44 2016 -0700
@@ -64,5 +64,7 @@
 # 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@
--- a/common/autoconf/generated-configure.sh	Fri Jul 01 12:32:21 2016 +0200
+++ b/common/autoconf/generated-configure.sh	Fri Jul 01 16:55:44 2016 -0700
@@ -644,6 +644,7 @@
 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 @@
 #CUSTOM_AUTOCONF_INCLUDE
 
 # Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1466007828
+DATE_WHEN_GENERATED=1467223237
 
 ###############################################################################
 #
@@ -36621,7 +36622,6 @@
   # Setup the assembler (AS)
   #
   if test "x$OPENJDK_TARGET_OS" = xsolaris; then
-    # FIXME: should this really be solaris, or solstudio?
 
 
   # Publish this variable in the help.
@@ -37105,6 +37105,9 @@
     fi
   fi
 
+    if test "x$AS" = x; then
+      as_fn_error $? "Solaris assembler (as) is required. Please install via \"pkg install pkg:/developer/assembler\"." "$LINENO" 5
+    fi
   else
     # FIXME: is this correct for microsoft?
     AS="$CC -c"
@@ -65120,25 +65123,32 @@
     JVM_ARG_OK=false
   fi
 
-
-  # Maximum amount of heap memory.
-  # Maximum stack size.
-  JVM_MAX_HEAP=`expr $MEMORY_SIZE / 2`
+  BOOTCYCLE_JVM_ARGS_BIG=-Xms64M
+
+  # Maximum amount of heap memory and stack size.
+  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
+  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
+
   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
-  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_32
+    JVM_MAX_HEAP=$JVM_HEAP_LIMIT_32
+  else
+    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
@@ -65177,6 +65187,21 @@
   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"
 
--- a/common/autoconf/spec.gmk.in	Fri Jul 01 12:32:21 2016 +0200
+++ b/common/autoconf/spec.gmk.in	Fri Jul 01 16:55:44 2016 -0700
@@ -578,7 +578,7 @@
 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
--- a/common/autoconf/toolchain.m4	Fri Jul 01 12:32:21 2016 +0200
+++ b/common/autoconf/toolchain.m4	Fri Jul 01 16:55:44 2016 -0700
@@ -597,9 +597,11 @@
   # Setup the assembler (AS)
   #
   if test "x$OPENJDK_TARGET_OS" = xsolaris; then
-    # FIXME: should this really be solaris, or solstudio?
     BASIC_PATH_PROGS(AS, as)
     BASIC_FIXUP_EXECUTABLE(AS)
+    if test "x$AS" = x; then
+      AC_MSG_ERROR([Solaris assembler (as) is required. Please install via "pkg install pkg:/developer/assembler".])
+    fi
   else
     # FIXME: is this correct for microsoft?
     AS="$CC -c"
--- a/common/bin/compare.sh	Fri Jul 01 12:32:21 2016 +0200
+++ b/common/bin/compare.sh	Fri Jul 01 16:55:44 2016 -0700
@@ -102,10 +102,13 @@
     # 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 @@
                 $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 @@
             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 @@
         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
--- a/make/CompileJavaModules.gmk	Fri Jul 01 12:32:21 2016 +0200
+++ b/make/CompileJavaModules.gmk	Fri Jul 01 16:55:44 2016 -0700
@@ -55,10 +55,6 @@
 # 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 \
--- a/make/Main.gmk	Fri Jul 01 12:32:21 2016 +0200
+++ b/make/Main.gmk	Fri Jul 01 16:55:44 2016 -0700
@@ -633,7 +633,9 @@
 
   # 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)