changeset 3258:ced27e54d17c

New backports for issues to be fixed in 1.13.12. S2178143, PR2959: JVM crashes if the number of bound CPUs changed during runtime S6260348, PR3068: GTK+ L&F JTextComponent not respecting desktop caret blink rate S6961123, PR2975: setWMClass fails to null-terminate WM_CLASS string PR2800: Files are missing from resources.jar PR3137: GTKLookAndFeel does not honor gtk-alternative-button-order 2016-08-15 Andrew John Hughes <gnu.andrew@redhat.com> * Makefile.am: (ICEDTEA_PATCHES): Add new patches. * NEWS: Updated. * patches/ecj/icedtea.patch: Adjust and extend, following PR2800. * patches/openjdk/2178143-pr2959.patch, * patches/openjdk/6260348-pr3068.patch, * patches/openjdk/6961123-pr2975.patch, * patches/pr2800-missing_resources.patch, * patches/pr3137-alt_button_order.patch: New backports for issues to be fixed in 1.13.12.
author Andrew John Hughes <gnu.andrew@redhat.com>
date Wed, 17 Aug 2016 03:22:59 +0100
parents dcf569e8e778
children 5f02205c65fb
files ChangeLog Makefile.am NEWS patches/ecj/icedtea.patch patches/openjdk/2178143-pr2959.patch patches/openjdk/6260348-pr3068.patch patches/openjdk/6961123-pr2975.patch patches/pr2800-missing_resources.patch patches/pr3137-alt_button_order.patch
diffstat 9 files changed, 479 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue May 24 17:57:12 2016 +0100
+++ b/ChangeLog	Wed Aug 17 03:22:59 2016 +0100
@@ -1,3 +1,17 @@
+2016-08-15  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Add new patches.
+	* NEWS: Updated.
+	* patches/ecj/icedtea.patch:
+	Adjust and extend, following PR2800.
+	* patches/openjdk/2178143-pr2959.patch,
+	* patches/openjdk/6260348-pr3068.patch,
+	* patches/openjdk/6961123-pr2975.patch,
+	* patches/pr2800-missing_resources.patch,
+	* patches/pr3137-alt_button_order.patch:
+	New backports for issues to be fixed in 1.13.12.
+
 2016-05-24  Andrew John Hughes  <gnu.andrew@redhat.com>
 
 	PR2969: ENABLE_SYSTEM_LCMS is not defined
--- a/Makefile.am	Tue May 24 17:57:12 2016 +0100
+++ b/Makefile.am	Wed Aug 17 03:22:59 2016 +0100
@@ -627,7 +627,12 @@
 	patches/openjdk/8150954-pr2868-composite_desktop.patch \
 	patches/pr2890-system_cacerts.patch \
 	patches/openjdk/6863746-pr2951-no_ct.sym_in_javap.patch \
-	patches/openjdk/7050826-pr2956-allow_type1_fonts.patch
+	patches/openjdk/7050826-pr2956-allow_type1_fonts.patch \
+	patches/openjdk/2178143-pr2959.patch \
+	patches/pr3137-alt_button_order.patch \
+	patches/openjdk/6260348-pr3068.patch \
+	patches/openjdk/6961123-pr2975.patch \
+	patches/pr2800-missing_resources.patch
 
 if WITH_RHINO
 ICEDTEA_PATCHES += \
--- a/NEWS	Tue May 24 17:57:12 2016 +0100
+++ b/NEWS	Wed Aug 17 03:22:59 2016 +0100
@@ -15,12 +15,17 @@
 New in release 1.13.12 (2016-07-XX):
 
 * Backports
+  - S2178143, PR2959: JVM crashes if the number of bound CPUs changed during runtime
+  - S6260348, PR3068: GTK+ L&F JTextComponent not respecting desktop caret blink rate
+  - S6961123, PR2975: setWMClass fails to null-terminate WM_CLASS string
   - S7050826, PR2956, RH1334465: Hebrew characters are not rendered on OEL 5.6
 * Bug fixes
+  - PR2800: Files are missing from resources.jar
   - PR2954: ecj/override.patch is missing new @Overrides in RMIJRMPServerImpl.java
   - PR2961: Latest security update broke bundled LCMS2 build
   - PR2962: System default check doesn't match all GNU/Linux systems
   - PR2969: ENABLE_SYSTEM_LCMS is not defined if ENABLE_LCMS2 is not set
+  - PR3137: GTKLookAndFeel does not honor gtk-alternative-button-order
 
 New in release 1.13.11 (2016-05-05):
 
--- a/patches/ecj/icedtea.patch	Tue May 24 17:57:12 2016 +0100
+++ b/patches/ecj/icedtea.patch	Wed Aug 17 03:22:59 2016 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk-ecj.orig/corba/make/com/sun/corba/se/Makefile openjdk-ecj/corba/make/com/sun/corba/se/Makefile
---- openjdk-ecj.orig/corba/make/com/sun/corba/se/Makefile	2013-10-04 15:45:38.000000000 +0100
-+++ openjdk-ecj/corba/make/com/sun/corba/se/Makefile	2013-10-09 12:46:11.374453549 +0100
+--- openjdk-ecj.orig/corba/make/com/sun/corba/se/Makefile	2016-05-03 23:37:30.000000000 +0100
++++ openjdk-ecj/corba/make/com/sun/corba/se/Makefile	2016-08-15 00:27:49.728107052 +0100
 @@ -42,7 +42,7 @@
  # the rmic iiop backend needs some classes that are part of the impl/util
  # package.  These classes use log wrappers, so they must be built after
@@ -12,7 +12,7 @@
  
 diff -Nru openjdk-ecj.orig/corba/make/com/sun/corba/se/org/Makefile openjdk-ecj/corba/make/com/sun/corba/se/org/Makefile
 --- openjdk-ecj.orig/corba/make/com/sun/corba/se/org/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk-ecj/corba/make/com/sun/corba/se/org/Makefile	2013-10-09 12:46:11.374453549 +0100
++++ openjdk-ecj/corba/make/com/sun/corba/se/org/Makefile	2016-08-15 00:27:49.732106986 +0100
 @@ -0,0 +1,38 @@
 +#
 +# Copyright 2001-2005 Sun Microsystems, Inc.  All Rights Reserved.
@@ -53,7 +53,7 @@
 +#
 +include $(BUILDDIR)/common/Classes.gmk
 diff -Nru openjdk-ecj.orig/corba/make/com/sun/corba/se/sources/Makefile openjdk-ecj/corba/make/com/sun/corba/se/sources/Makefile
---- openjdk-ecj.orig/corba/make/com/sun/corba/se/sources/Makefile	2013-10-04 15:45:38.000000000 +0100
+--- openjdk-ecj.orig/corba/make/com/sun/corba/se/sources/Makefile	2016-05-03 23:37:30.000000000 +0100
 +++ openjdk-ecj/corba/make/com/sun/corba/se/sources/Makefile	1970-01-01 01:00:00.000000000 +0100
 @@ -1,224 +0,0 @@
 -#
@@ -281,8 +281,8 @@
 -#
 -include $(BUILDDIR)/common/Rules.gmk
 diff -Nru openjdk-ecj.orig/corba/make/common/Defs.gmk openjdk-ecj/corba/make/common/Defs.gmk
---- openjdk-ecj.orig/corba/make/common/Defs.gmk	2013-10-04 15:45:38.000000000 +0100
-+++ openjdk-ecj/corba/make/common/Defs.gmk	2013-10-09 12:46:11.374453549 +0100
+--- openjdk-ecj.orig/corba/make/common/Defs.gmk	2016-05-03 23:37:31.000000000 +0100
++++ openjdk-ecj/corba/make/common/Defs.gmk	2016-08-15 00:27:49.732106986 +0100
 @@ -53,6 +53,13 @@
  
  _OUTPUTDIR=$(TOPDIR)/build/$(PLATFORM)-$(ARCH)
@@ -316,8 +316,8 @@
  vpath %.java $(VPATH.java)
  vpath %.class $(CLASSBINDIR)
 diff -Nru openjdk-ecj.orig/corba/make/common/Defs-linux.gmk openjdk-ecj/corba/make/common/Defs-linux.gmk
---- openjdk-ecj.orig/corba/make/common/Defs-linux.gmk	2013-10-09 12:43:59.208422274 +0100
-+++ openjdk-ecj/corba/make/common/Defs-linux.gmk	2013-10-09 12:46:11.374453549 +0100
+--- openjdk-ecj.orig/corba/make/common/Defs-linux.gmk	2016-08-15 00:25:28.210408077 +0100
++++ openjdk-ecj/corba/make/common/Defs-linux.gmk	2016-08-15 00:27:49.732106986 +0100
 @@ -271,7 +271,7 @@
  #
  VM_NAME         = server
@@ -328,8 +328,8 @@
  #
  # We want to privatize JVM symbols on Solaris. This is so the user can
 diff -Nru openjdk-ecj.orig/corba/make/org/omg/sources/Makefile openjdk-ecj/corba/make/org/omg/sources/Makefile
---- openjdk-ecj.orig/corba/make/org/omg/sources/Makefile	2013-10-04 15:45:38.000000000 +0100
-+++ openjdk-ecj/corba/make/org/omg/sources/Makefile	2013-10-09 12:46:11.374453549 +0100
+--- openjdk-ecj.orig/corba/make/org/omg/sources/Makefile	2016-05-03 23:37:31.000000000 +0100
++++ openjdk-ecj/corba/make/org/omg/sources/Makefile	2016-08-15 00:27:49.732106986 +0100
 @@ -93,8 +93,6 @@
  POAHELHOLFILES =    $(POA_GENERATED_HELP_HOL_java:%=$(GENSRCDIR)/%)
  
@@ -407,8 +407,8 @@
  pi.compile: $(PIGENERATEDFILES)
  
 diff -Nru openjdk-ecj.orig/corba/make/sun/rmi/corbalogsources/Makefile openjdk-ecj/corba/make/sun/rmi/corbalogsources/Makefile
---- openjdk-ecj.orig/corba/make/sun/rmi/corbalogsources/Makefile	2013-10-04 15:45:38.000000000 +0100
-+++ openjdk-ecj/corba/make/sun/rmi/corbalogsources/Makefile	2013-10-09 12:46:11.374453549 +0100
+--- openjdk-ecj.orig/corba/make/sun/rmi/corbalogsources/Makefile	2016-05-03 23:37:32.000000000 +0100
++++ openjdk-ecj/corba/make/sun/rmi/corbalogsources/Makefile	2016-08-15 00:27:49.732106986 +0100
 @@ -172,7 +172,6 @@
  ACTIVATIONFILES = $(com_sun_corba_se_spi_activation_java:%=$(GENSRCDIR)/%)
  
@@ -426,8 +426,8 @@
  portableactivation.idl.compile: $(PORTABLEACTIVATIONFILES)
  
 diff -Nru openjdk-ecj.orig/jaxp/build.xml openjdk-ecj/jaxp/build.xml
---- openjdk-ecj.orig/jaxp/build.xml	2013-10-04 15:50:12.000000000 +0100
-+++ openjdk-ecj/jaxp/build.xml	2013-10-09 12:46:11.374453549 +0100
+--- openjdk-ecj.orig/jaxp/build.xml	2016-05-03 23:37:34.000000000 +0100
++++ openjdk-ecj/jaxp/build.xml	2016-08-15 00:27:49.732106986 +0100
 @@ -131,7 +131,8 @@
               memoryMaximumSize="${javac.memoryMaximumSize}"
               source="${javac.source}"
@@ -439,8 +439,8 @@
              <compilerarg line="${javac.version.opt} ${javac.lint.opts} ${javac.no.jdk.warnings}"/>
              <src refid="src.dir.id"/>
 diff -Nru openjdk-ecj.orig/jaxws/build.xml openjdk-ecj/jaxws/build.xml
---- openjdk-ecj.orig/jaxws/build.xml	2013-10-04 15:51:17.000000000 +0100
-+++ openjdk-ecj/jaxws/build.xml	2013-10-09 12:46:11.374453549 +0100
+--- openjdk-ecj.orig/jaxws/build.xml	2016-05-03 23:37:40.000000000 +0100
++++ openjdk-ecj/jaxws/build.xml	2016-08-15 00:27:49.732106986 +0100
 @@ -131,7 +131,8 @@
               memoryMaximumSize="${javac.memoryMaximumSize}"
               source="${javac.source}"
@@ -452,35 +452,44 @@
              <compilerarg line="${javac.version.opt} ${javac.lint.opts} ${javac.no.jdk.warnings}"/>
              <src refid="src.dir.id"/>
 diff -Nru openjdk-ecj.orig/jdk/make/common/Release.gmk openjdk-ecj/jdk/make/common/Release.gmk
---- openjdk-ecj.orig/jdk/make/common/Release.gmk	2013-10-09 12:44:01.020450124 +0100
-+++ openjdk-ecj/jdk/make/common/Release.gmk	2013-10-09 13:17:10.126995245 +0100
-@@ -660,10 +660,23 @@
+--- openjdk-ecj.orig/jdk/make/common/Release.gmk	2016-08-15 00:25:32.470338819 +0100
++++ openjdk-ecj/jdk/make/common/Release.gmk	2016-08-15 00:33:01.163044592 +0100
+@@ -697,13 +697,32 @@
  $(RES_JAR_ARGLIST): $(RES_JAR_FILELIST)
  	$(prep-target)
  	$(SED) -e "s@^@-C $(CLASSBINDIR) @" $< > $@
--$(RESOURCES_JAR): $(RES_JAR_ARGLIST) $(JAR_MANIFEST_FILE)
+-$(RESOURCES_JAR): $(RES_JAR_ARGLIST) $(JAR_MANIFEST_FILE) $(IMPORT_JAR_FILELIST)
 +$(RESOURCES_JAR): \
 +    $(if $(JAR_KNOWS_ATFILE),$(RES_JAR_FILELIST),$(RES_JAR_ARGLIST)) \
-+    $(JAR_MANIFEST_FILE)
++    $(JAR_MANIFEST_FILE) $(IMPORT_JAR_FILELIST)
  	$(prep-target)
 +ifneq (,$(JAR_KNOWS_ATFILE))
 +	(cd $(CLASSBINDIR) && \
  	$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ \
 -	    @$(RES_JAR_ARGLIST) $(JAR_JFLAGS)
 +	    $(JAR_JFLAGS) @$(RES_JAR_FILELIST))
+ 	$(CD) $(IMPORTSRCDIR) && \
+ 	    $(BOOT_JAR_CMD) $(UPDATE_JAR_OPTS) $@ \
+ 	        @$(IMPORT_JAR_FILELIST) $(JAR_JFLAGS)
 +else ifneq (,$(JAR_ACCEPTS_STDIN_LIST))
-+	(cd $(CLASSBINDIR) && $(CAT) $(RES_JAR_FILELIST) | \
++	($(CD) $(CLASSBINDIR) && $(CAT) $(RES_JAR_FILELIST) | \
 +	$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS)@ $(JAR_MANIFEST_FILE) $@ \
 +	    $(JAR_JFLAGS))
++	($(CD) $(IMPORTSRCDIR) && $(CAT) $(IMPORT_JAR_FILELIST) | \
++	    $(BOOT_JAR_CMD) $(UPDATE_JAR_OPTS) $@ \
++	        $(JAR_JFLAGS))
 +else
-+	(cd $(CLASSBINDIR) && \
++	($(CD) $(CLASSBINDIR) && \
 +	$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ \
 +	    $(JAR_JFLAGS) `cat $(RES_JAR_FILELIST)`)
++	($(CD) $(IMPORTSRCDIR) && \
++	$(BOOT_JAR_CMD) $(UPDATE_JAR_OPTS) $@ \
++	    $(JAR_JFLAGS) `cat $(IMPORT_JAR_FILELIST)`)
 +endif
  	@$(java-vm-cleanup)
+ 	@$(CD) $(IMPORTSRCDIR) && $(java-vm-cleanup)
  
- # Create jsse.jar containing SunJSSE implementation classes
-@@ -719,10 +732,22 @@
+@@ -760,10 +779,22 @@
  $(RT_JAR_ARGLIST): $(RT_JAR_FILELIST)
  	$(prep-target)
  	$(SED) -e "s@^@-C $(CLASSBINDIR) @" $< > $@
@@ -505,7 +514,7 @@
  	@$(java-vm-cleanup)
  
  # Meta-index construction to make core class loaders lazier
-@@ -969,19 +994,6 @@
+@@ -1011,19 +1042,6 @@
  	@$(java-vm-cleanup)
  	$(CP) $(LIBDIR)/tools.jar $(JDK_IMAGE_DIR)/lib/tools.jar
  	@#
@@ -525,7 +534,7 @@
  	@# CORBA supported orb.idl and ir.idl should be copied to lib
  	@#
  	$(CP) $(LIBDIR)/orb.idl $(JDK_IMAGE_DIR)/lib/orb.idl
-@@ -1050,16 +1062,6 @@
+@@ -1092,16 +1110,6 @@
  	$(CP) $(PLATFORM_SRC)/bin/java_md.h $(JDK_IMAGE_DIR)/src/launcher
  	$(CD) $(JDK_IMAGE_DIR)/src && $(ZIPEXE) -qr ../src.zip *
  	$(RM) -r $(JDK_IMAGE_DIR)/src
@@ -543,8 +552,8 @@
  	$(call copy-man-pages,$(JDK_IMAGE_DIR),$(JDK_MAN_PAGES))
  endif # !windows
 diff -Nru openjdk-ecj.orig/jdk/make/common/Rules.gmk openjdk-ecj/jdk/make/common/Rules.gmk
---- openjdk-ecj.orig/jdk/make/common/Rules.gmk	2013-10-04 15:55:30.000000000 +0100
-+++ openjdk-ecj/jdk/make/common/Rules.gmk	2013-10-09 12:46:11.374453549 +0100
+--- openjdk-ecj.orig/jdk/make/common/Rules.gmk	2016-05-03 23:37:56.000000000 +0100
++++ openjdk-ecj/jdk/make/common/Rules.gmk	2016-08-15 00:27:49.732106986 +0100
 @@ -302,6 +302,8 @@
  	$(JAVAH_CMD) -d $(CLASSHDRDIR)/ \
  		$(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner))
@@ -555,8 +564,8 @@
  
  classheaders.clean:
 diff -Nru openjdk-ecj.orig/jdk/make/java/nio/Makefile openjdk-ecj/jdk/make/java/nio/Makefile
---- openjdk-ecj.orig/jdk/make/java/nio/Makefile	2013-10-09 12:43:55.072358704 +0100
-+++ openjdk-ecj/jdk/make/java/nio/Makefile	2013-10-09 12:46:11.374453549 +0100
+--- openjdk-ecj.orig/jdk/make/java/nio/Makefile	2016-08-15 00:25:15.282618255 +0100
++++ openjdk-ecj/jdk/make/java/nio/Makefile	2016-08-15 00:27:49.732106986 +0100
 @@ -31,7 +31,7 @@
  PACKAGE = java.nio
  LIBRARY = nio
@@ -567,9 +576,9 @@
  
  NIO_SRC = $(SHARE_SRC)/classes/java/nio
 diff -Nru openjdk-ecj.orig/jdk/make/Makefile openjdk-ecj/jdk/make/Makefile
---- openjdk-ecj.orig/jdk/make/Makefile	2013-10-04 15:55:30.000000000 +0100
-+++ openjdk-ecj/jdk/make/Makefile	2013-10-09 12:46:11.374453549 +0100
-@@ -247,7 +247,7 @@
+--- openjdk-ecj.orig/jdk/make/Makefile	2016-05-03 23:37:56.000000000 +0100
++++ openjdk-ecj/jdk/make/Makefile	2016-08-15 00:27:49.732106986 +0100
+@@ -246,7 +246,7 @@
  
  all build:: sanity-all post-sanity-all
  
@@ -579,9 +588,9 @@
  	$(SUBDIRS-loop)
  
 diff -Nru openjdk-ecj.orig/jdk/make/sun/awt/Makefile openjdk-ecj/jdk/make/sun/awt/Makefile
---- openjdk-ecj.orig/jdk/make/sun/awt/Makefile	2013-10-09 12:43:59.532427253 +0100
-+++ openjdk-ecj/jdk/make/sun/awt/Makefile	2013-10-09 12:46:11.374453549 +0100
-@@ -434,10 +434,9 @@
+--- openjdk-ecj.orig/jdk/make/sun/awt/Makefile	2016-08-15 00:25:28.878397217 +0100
++++ openjdk-ecj/jdk/make/sun/awt/Makefile	2016-08-15 00:27:49.732106986 +0100
+@@ -436,10 +436,9 @@
  COMPILEFONTCONFIG_JARFILE = $(BUILDTOOLJARDIR)/compilefontconfig.jar
  
  $(LIBDIR)/%.bfc: $(FONTCONFIGS_SRC)/$(FONTCONFIGS_SRC_PREFIX)%.properties \
@@ -596,8 +605,8 @@
  
  fontconfigs.clean :
 diff -Nru openjdk-ecj.orig/jdk/make/sun/xawt/Makefile openjdk-ecj/jdk/make/sun/xawt/Makefile
---- openjdk-ecj.orig/jdk/make/sun/xawt/Makefile	2013-10-09 12:44:01.268453936 +0100
-+++ openjdk-ecj/jdk/make/sun/xawt/Makefile	2013-10-09 12:46:11.374453549 +0100
+--- openjdk-ecj.orig/jdk/make/sun/xawt/Makefile	2016-08-15 00:25:32.518338038 +0100
++++ openjdk-ecj/jdk/make/sun/xawt/Makefile	2016-08-15 00:27:49.732106986 +0100
 @@ -301,11 +301,7 @@
  
  TEMPDIR_CLASSES = $(TEMPDIR)/classes
@@ -638,8 +647,8 @@
  	done
  	$(TOUCH) $@
 diff -Nru openjdk-ecj.orig/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java openjdk-ecj/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java
---- openjdk-ecj.orig/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java	2013-10-04 15:55:31.000000000 +0100
-+++ openjdk-ecj/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java	2013-10-09 12:46:11.374453549 +0100
+--- openjdk-ecj.orig/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java	2016-08-15 00:25:31.314357613 +0100
++++ openjdk-ecj/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java	2016-08-15 00:27:49.732106986 +0100
 @@ -647,9 +647,6 @@
              throws FileNotFoundException, IOException {
          BufferedReader in = new BufferedReader(new FileReader(theTemplateFileName));
@@ -659,8 +668,8 @@
                  if (plane == 0 && bLatin1 == false) {
              genCaseMapTableDeclaration(result);
 diff -Nru openjdk-ecj.orig/langtools/make/build.properties openjdk-ecj/langtools/make/build.properties
---- openjdk-ecj.orig/langtools/make/build.properties	2013-10-04 15:55:57.000000000 +0100
-+++ openjdk-ecj/langtools/make/build.properties	2013-10-09 12:46:11.374453549 +0100
+--- openjdk-ecj.orig/langtools/make/build.properties	2016-05-03 23:37:43.000000000 +0100
++++ openjdk-ecj/langtools/make/build.properties	2016-08-15 00:27:49.732106986 +0100
 @@ -68,7 +68,7 @@
  # set the following to -version to verify the versions of javac being used
  javac.version.opt =
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/2178143-pr2959.patch	Wed Aug 17 03:22:59 2016 +0100
@@ -0,0 +1,54 @@
+# HG changeset patch
+# User minqi
+# Date 1464805886 -3600
+#      Wed Jun 01 19:31:26 2016 +0100
+# Node ID a136b8a1ad7a00a0d7509f1a5a8cb6d0e509af76
+# Parent  2d8e12787f80ffffa0e48927efe5af13c6a68a08
+2178143, PR2959: JVM crashes if the number of bound CPUs changed during runtime
+Summary: Supply a new flag -XX:+AssumeMP to workaround the problem. With the flag is turned on, assume VM run on MP platform so is_MP() will return true that sync calls will not skip away.
+Reviewed-by: dholmes, acorn, dcubed, jmasa
+Contributed-by: yumin.qi@oracle.com
+
+diff --git a/src/share/vm/runtime/arguments.cpp b/src/share/vm/runtime/arguments.cpp
+--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+@@ -3473,6 +3473,14 @@
+     set_g1_gc_flags();
+   }
+ 
++  if (AssumeMP && !UseSerialGC) {
++    if (FLAG_IS_DEFAULT(ParallelGCThreads) && ParallelGCThreads == 1) {
++      warning("If the number of processors is expected to increase from one, then"
++              " you should configure the number of parallel GC threads appropriately"
++              " using -XX:ParallelGCThreads=N");
++    }
++  }
++
+ #ifdef SERIALGC
+   assert(verify_serial_gc_flags(), "SerialGC unset");
+ #endif // SERIALGC
+diff --git a/src/share/vm/runtime/globals.hpp b/src/share/vm/runtime/globals.hpp
+--- openjdk/hotspot/src/share/vm/runtime/globals.hpp
++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp
+@@ -480,6 +480,9 @@
+   lp64_product(intx, ObjectAlignmentInBytes, 8,                             \
+           "Default object alignment in bytes, 8 is minimum")                \
+                                                                             \
++  product(bool, AssumeMP, false,                                            \
++          "Instruct the VM to assume multiple processors are available")    \
++                                                                            \
+   /* UseMembar is theoretically a temp flag used for memory barrier         \
+    * removal testing.  It was supposed to be removed before FCS but has     \
+    * been re-added (see 6401008) */                                         \
+diff --git a/src/share/vm/runtime/os.hpp b/src/share/vm/runtime/os.hpp
+--- openjdk/hotspot/src/share/vm/runtime/os.hpp
++++ openjdk/hotspot/src/share/vm/runtime/os.hpp
+@@ -198,7 +198,7 @@
+   // Interface for detecting multiprocessor system
+   static inline bool is_MP() {
+     assert(_processor_count > 0, "invalid processor count");
+-    return _processor_count > 1;
++    return _processor_count > 1 || AssumeMP;
+   }
+   static julong available_memory();
+   static julong physical_memory();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/6260348-pr3068.patch	Wed Aug 17 03:22:59 2016 +0100
@@ -0,0 +1,152 @@
+# HG changeset patch
+# User ssadetsky
+# Date 1468898831 -3600
+#      Tue Jul 19 04:27:11 2016 +0100
+# Node ID 830b7280229ea89e94ad8828ea6201c89f32da27
+# Parent  43efac8a0030e2bb6b4c9a7ecb16c695b9794c69
+6260348, PR3068: GTK+ L&F JTextComponent not respecting desktop caret blink rate
+Reviewed-by: alexsch, azvegint
+
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java	2016-08-12 02:47:03.891111822 +0100
++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java	2016-08-12 02:47:59.238196204 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
++ * 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
+@@ -94,7 +94,9 @@
+     static enum Settings {
+         GTK_FONT_NAME,
+         GTK_ICON_SIZES,
+-	GTK_BUTTON_ORDER
++        GTK_BUTTON_ORDER,
++        GTK_CURSOR_BLINK,
++        GTK_CURSOR_BLINK_TIME
+     }
+ 
+     /* Custom regions are needed for representing regions that don't exist
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java	2016-08-12 02:47:03.891111822 +0100
++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java	2016-08-12 02:48:38.625544564 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2002, 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
+@@ -371,7 +371,17 @@
+         int vProgWidth  =  22 - (progXThickness * 2);
+         int vProgHeight =  80 - (progYThickness * 2);
+ 
+-        Integer caretBlinkRate = new Integer(500);
++        Integer caretBlinkRate;
++        if (Boolean.FALSE.equals(GTKEngine.INSTANCE.getSetting(
++                GTKEngine.Settings.GTK_CURSOR_BLINK))) {
++            caretBlinkRate = Integer.valueOf(0);
++        } else {
++            caretBlinkRate = (Integer) GTKEngine.INSTANCE.getSetting(
++                    GTKEngine.Settings.GTK_CURSOR_BLINK_TIME);
++            if (caretBlinkRate == null) {
++                caretBlinkRate = Integer.valueOf(500);
++            }
++        }
+         Insets zeroInsets = new InsetsUIResource(0, 0, 0, 0);
+ 
+         Double defaultCaretAspectRatio = new Double(0.025);
+diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/gtk2_interface.c openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c
+--- openjdk.orig/jdk/src/solaris/native/sun/awt/gtk2_interface.c	2016-08-12 02:47:03.891111822 +0100
++++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c	2016-08-12 02:50:48.151401372 +0100
+@@ -1055,9 +1055,6 @@
+             {
+                 result = gtk2_widgets[_GTK_COMBO_BOX_TEXT_FIELD_TYPE] =
+                      (*fp_gtk_entry_new)();
+-
+-                GtkSettings* settings = fp_gtk_widget_get_settings(result);
+-                fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL);
+             }
+             result = gtk2_widgets[_GTK_COMBO_BOX_TEXT_FIELD_TYPE];
+             break;
+@@ -1102,10 +1099,6 @@
+             {
+                 gtk2_widgets[_GTK_ENTRY_TYPE] =
+                     (*fp_gtk_entry_new)();
+-
+-                GtkSettings* settings =
+-                    fp_gtk_widget_get_settings(gtk2_widgets[_GTK_ENTRY_TYPE]);
+-                fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL);
+             }
+             result = gtk2_widgets[_GTK_ENTRY_TYPE];
+             break;
+@@ -1298,8 +1291,6 @@
+                 result = gtk2_widgets[_GTK_SPIN_BUTTON_TYPE] =
+                     (*fp_gtk_spin_button_new)(NULL, 0, 0);
+ 
+-                GtkSettings* settings = fp_gtk_widget_get_settings(result);
+-                fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL);
+             }
+             result = gtk2_widgets[_GTK_SPIN_BUTTON_TYPE];
+             break;
+@@ -2253,21 +2244,20 @@
+ 
+     return result;
+ }
+-/*
++
+ jobject get_integer_property(JNIEnv *env, GtkSettings* settings, const gchar* key)
+ {
+-    gint    intval = NULL;
+-
++    gint intval = NULL;
+     (*fp_g_object_get)(settings, key, &intval, NULL);
+     return create_Integer(env, intval);
+-}*/
++}
+ 
+ jobject get_boolean_property(JNIEnv* env, GtkSettings* settings, const gchar *key)
+ {
+-    gboolean boolval = NULL;
++    gint intval = NULL;
+ 
+-    (*fp_g_object_get)(settings, key, &boolval, NULL);
+-    return create_Boolean(env, (jboolean) boolval);
++    (*fp_g_object_get)(settings, key, &intval, NULL);
++    return create_Boolean(env, intval);
+ }
+ 
+ jobject gtk2_get_setting(JNIEnv *env, Setting property)
+@@ -2282,6 +2272,10 @@
+             return get_string_property(env, settings, "gtk-icon-sizes");
+         case GTK_BUTTON_ORDER:
+ 	    return get_boolean_property(env, settings, "gtk-alternative-button-order");
++        case GTK_CURSOR_BLINK:
++            return get_boolean_property(env, settings, "gtk-cursor-blink");
++        case GTK_CURSOR_BLINK_TIME:
++            return get_integer_property(env, settings, "gtk-cursor-blink-time");
+     }
+ 
+     return NULL;
+diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/gtk2_interface.h openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h
+--- openjdk.orig/jdk/src/solaris/native/sun/awt/gtk2_interface.h	2016-08-12 02:47:03.891111822 +0100
++++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h	2016-08-12 02:52:32.173679886 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
++ * 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
+@@ -125,7 +125,9 @@
+ {
+     GTK_FONT_NAME,
+     GTK_ICON_SIZES,
+-    GTK_BUTTON_ORDER
++    GTK_BUTTON_ORDER,
++    GTK_CURSOR_BLINK,
++    GTK_CURSOR_BLINK_TIME
+ } Setting;
+ 
+ /* GTK types, here to eliminate need for GTK headers at compile time */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/6961123-pr2975.patch	Wed Aug 17 03:22:59 2016 +0100
@@ -0,0 +1,21 @@
+# HG changeset patch
+# User omajid
+# Date 1451403643 18000
+#      Tue Dec 29 10:40:43 2015 -0500
+# Node ID b8a5aed0fb7c96d033e97277bd20bbb6ed5b0a4b
+# Parent  a70af3aae22ba6c6fbd0cff2430e7cfeaf21f5f0
+6961123, PR2975: setWMClass fails to null-terminate WM_CLASS string
+Reviewed-by: andrew, serb
+
+diff --git a/src/solaris/classes/sun/awt/X11/XBaseWindow.java b/src/solaris/classes/sun/awt/X11/XBaseWindow.java
+--- openjdk/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java
+@@ -661,7 +661,7 @@
+         XToolkit.awtLock();
+         try {
+             XAtom xa = XAtom.get(XAtom.XA_WM_CLASS);
+-            xa.setProperty8(getWindow(), cl[0] + '\0' + cl[1]);
++            xa.setProperty8(getWindow(), cl[0] + '\0' + cl[1] + '\0');
+         } finally {
+             XToolkit.awtUnlock();
+         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/pr2800-missing_resources.patch	Wed Aug 17 03:22:59 2016 +0100
@@ -0,0 +1,87 @@
+# HG changeset patch
+# User andrew
+# Date 1468897960 -3600
+#      Tue Jul 19 04:12:40 2016 +0100
+# Node ID 43efac8a0030e2bb6b4c9a7ecb16c695b9794c69
+# Parent  322e1901d8ba95f031b1a82fd51c0ae279e1a8bc
+PR2800: Files are missing from resources.jar
+Summary: Compile and filter list of files from IMPORTSRCDIR and add to resources.jar
+
+diff -Nru openjdk.orig/jdk/make/common/Release.gmk openjdk/jdk/make/common/Release.gmk
+--- openjdk.orig/jdk/make/common/Release.gmk	2016-08-15 00:13:41.073898470 +0100
++++ openjdk/jdk/make/common/Release.gmk	2016-08-15 00:23:17.156538545 +0100
+@@ -232,9 +232,11 @@
+ ifndef COMPRESS_JARS
+   CREATE_JAR_OPTS = c0mf
+   CREATE_JAR_OPTS_NOMANIFEST = c0f
++  UPDATE_JAR_OPTS = u0f
+ else
+   CREATE_JAR_OPTS = cmf
+   CREATE_JAR_OPTS_NOMANIFEST = cf
++  UPDATE_JAR_OPTS = uf
+ endif
+ 
+ #
+@@ -618,6 +620,21 @@
+ 	$(ECHO) "sun/tools/jinfo/" >> $@
+ 	$(ECHO) "sun/tools/jmap/" >> $@
+ 
++######################################################
++# List of directories in impsrc directory that should NOT be in resources.jar
++######################################################
++
++NOT_RESOURCE_JAR_LIST = $(ABS_TEMPDIR)/not_resource_jar.list
++
++$(NOT_RESOURCE_JAR_LIST): FRC
++	$(prep-target)
++	$(ECHO) "#\n" >> $@
++	$(ECHO) "# List of subdirectories not to include in resources.jar" >> $@
++	$(ECHO) "# Directories must contain trailing '/'." >> $@
++	$(ECHO) "com/" >> $@
++	$(ECHO) "javax/" >> $@
++	$(ECHO) "org/" >> $@
++	$(ECHO) "sun/" >> $@
+ 
+ # File order list for rt.jar
+ #     - sun.applet is included, till hotjava stops relying on it.
+@@ -629,6 +646,7 @@
+ JARFILELISTS_TEMPDIR=$(ABS_TEMPDIR)/jarfilelists
+ RT_JAR_FILELIST=$(JARFILELISTS_TEMPDIR)/rt_jar_list
+ RES_JAR_FILELIST=$(JARFILELISTS_TEMPDIR)/resources_jar_list
++IMPORT_JAR_FILELIST=$(JARFILELISTS_TEMPDIR)/imp_file_list
+ 
+ JARREORDER_JARFILE = $(ABS_BUILDTOOLJARDIR)/jarreorder.jar
+ 
+@@ -641,6 +659,15 @@
+ 	$(MV) $@.temp $@
+ 	@($(CD) $(CLASSBINDIR) && $(java-vm-cleanup))
+ 
++$(IMPORT_JAR_FILELIST): $(JARREORDER_JARFILE) $(NOT_RESOURCE_JAR_LIST)
++	$(prep-target)
++	$(RM) $@.temp
++	($(CD) $(IMPORTSRCDIR) && \
++	    $(BOOT_JAVA_CMD) -jar $(JARREORDER_JARFILE) \
++		-o  $@.temp - $(NOT_RESOURCE_JAR_LIST) . )
++	$(MV) $@.temp $@
++	@($(CD) $(IMPORTSRCDIR) && $(java-vm-cleanup))
++
+ # Create the rt.jar file list & non-class files list
+ 
+ JARSPLIT_JARFILE = $(BUILDTOOLJARDIR)/jarsplit.jar
+@@ -670,11 +697,15 @@
+ $(RES_JAR_ARGLIST): $(RES_JAR_FILELIST)
+ 	$(prep-target)
+ 	$(SED) -e "s@^@-C $(CLASSBINDIR) @" $< > $@
+-$(RESOURCES_JAR): $(RES_JAR_ARGLIST) $(JAR_MANIFEST_FILE)
++$(RESOURCES_JAR): $(RES_JAR_ARGLIST) $(JAR_MANIFEST_FILE) $(IMPORT_JAR_FILELIST)
+ 	$(prep-target)
+ 	$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ \
+ 	    @$(RES_JAR_ARGLIST) $(JAR_JFLAGS)
++	$(CD) $(IMPORTSRCDIR) && \
++	    $(BOOT_JAR_CMD) $(UPDATE_JAR_OPTS) $@ \
++	        @$(IMPORT_JAR_FILELIST) $(JAR_JFLAGS)
+ 	@$(java-vm-cleanup)
++	@$(CD) $(IMPORTSRCDIR) && $(java-vm-cleanup)
+ 
+ # Create jsse.jar containing SunJSSE implementation classes
+ JSSE_JAR=$(TEMPDIR)/jsse-orig.jar
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/pr3137-alt_button_order.patch	Wed Aug 17 03:22:59 2016 +0100
@@ -0,0 +1,88 @@
+# HG changeset patch
+# User andrew
+# Date 1370445992 -3600
+#      Wed Jun 05 16:26:32 2013 +0100
+# Node ID 083cb3631cb84dd34583d495ed079da16fb1f5be
+# Parent  fdd98e50f1df83d8aead62bb1c74224f2f8c82c7
+PR3137: GTKLookAndFeel does not honor gtk-alternative-button-order
+
+diff --git a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java
+--- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java
++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java
+@@ -93,7 +93,8 @@
+      */
+     static enum Settings {
+         GTK_FONT_NAME,
+-        GTK_ICON_SIZES
++        GTK_ICON_SIZES,
++	GTK_BUTTON_ORDER
+     }
+ 
+     /* Custom regions are needed for representing regions that don't exist
+diff --git a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java
+--- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java
++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java
+@@ -539,6 +539,14 @@
+             }
+         }
+ 
++	/* If gtk-alternative-button-order is set to true, isYesLast needs to be false */
++	Boolean buttonOrder = Boolean.TRUE;
++	Object orderSetting = GTKEngine.INSTANCE.getSetting(GTKEngine.Settings.GTK_BUTTON_ORDER);
++	if (orderSetting instanceof Boolean) {
++	    Boolean order = (Boolean) orderSetting;
++	    if (Boolean.TRUE.equals(order))
++		buttonOrder = Boolean.FALSE;
++	}
+         Object[] defaults = new Object[] {
+             "ArrowButton.size", Integer.valueOf(13),
+ 
+@@ -818,7 +826,7 @@
+             "OptionPane.windowBindings", new Object[] {
+                 "ESCAPE", "close" },
+             "OptionPane.buttonClickThreshhold", new Integer(500),
+-            "OptionPane.isYesLast", Boolean.TRUE,
++            "OptionPane.isYesLast", buttonOrder,
+             "OptionPane.font", new FontLazyValue(Region.OPTION_PANE),
+ 
+             "Panel.font", new FontLazyValue(Region.PANEL),
+diff --git a/src/solaris/native/sun/awt/gtk2_interface.c b/src/solaris/native/sun/awt/gtk2_interface.c
+--- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c
++++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c
+@@ -1817,6 +1817,14 @@
+     return create_Integer(env, intval);
+ }*/
+ 
++jobject get_boolean_property(JNIEnv* env, GtkSettings* settings, const gchar *key)
++{
++    gboolean boolval = NULL;
++
++    (*fp_g_object_get)(settings, key, &boolval, NULL);
++    return create_Boolean(env, (jboolean) boolval);
++}
++
+ jobject gtk2_get_setting(JNIEnv *env, Setting property)
+ {
+     GtkSettings* settings = gtk_settings_get_default ();
+@@ -1827,6 +1835,8 @@
+             return get_string_property(env, settings, "gtk-font-name");
+         case GTK_ICON_SIZES:
+             return get_string_property(env, settings, "gtk-icon-sizes");
++        case GTK_BUTTON_ORDER:
++	    return get_boolean_property(env, settings, "gtk-alternative-button-order");
+     }
+ 
+     return NULL;
+diff --git a/src/solaris/native/sun/awt/gtk2_interface.h b/src/solaris/native/sun/awt/gtk2_interface.h
+--- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h
++++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h
+@@ -130,7 +130,8 @@
+ typedef enum _Setting
+ {
+     GTK_FONT_NAME,
+-    GTK_ICON_SIZES
++    GTK_ICON_SIZES,
++    GTK_BUTTON_ORDER
+ } Setting;
+ 
+ /*