# HG changeset patch # User Andrew John Hughes # Date 1471226053 -3600 # Node ID 2de5d5254c7cad868991028be6020f7a98a710d9 # Parent cc7089689313beeabdc290ab5b833fec896cb7e7 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 * 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. diff -r cc7089689313 -r 2de5d5254c7c ChangeLog --- a/ChangeLog Tue May 24 17:57:12 2016 +0100 +++ b/ChangeLog Mon Aug 15 02:54:13 2016 +0100 @@ -1,3 +1,17 @@ +2016-08-15 Andrew John Hughes + + * 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 PR2969: ENABLE_SYSTEM_LCMS is not defined diff -r cc7089689313 -r 2de5d5254c7c Makefile.am --- a/Makefile.am Tue May 24 17:57:12 2016 +0100 +++ b/Makefile.am Mon Aug 15 02:54:13 2016 +0100 @@ -641,7 +641,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 += \ diff -r cc7089689313 -r 2de5d5254c7c NEWS --- a/NEWS Tue May 24 17:57:12 2016 +0100 +++ b/NEWS Mon Aug 15 02:54:13 2016 +0100 @@ -15,10 +15,13 @@ New in release 1.14.0 (201X-XX-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 - S6611637: NullPointerException in sun.font.GlyphLayout$EngineRecord.init - S6727719: Performance of TextLayout.getBounds() - S6745225: Memory leak while drawing Attributed String - S6904962: GlyphVector.getVisualBounds should not be affected by leading or trailing white space. + - S6961123, PR2975: setWMClass fails to null-terminate WM_CLASS string - S7050826, PR2956, RH1334465: Hebrew characters are not rendered on OEL 5.6 - S7151089: PS NUMA: NUMA allocator should not attempt to free pages when using SHM large pages - S8013057: Detect mmap() commit failures in Linux and Solaris os::commit_memory() impls and call vm_exit_out_of_memory() @@ -27,12 +30,14 @@ * Bug fixes - PR1886: IcedTea does not checksum supplied tarballs - PR2083: Add support for building Zero on AArch64 + - PR2800: Files are missing from resources.jar - PR2849: wget not required when downloading is disabled - PR2954: ecj/override.patch is missing new @Overrides in RMIJRMPServerImpl.java - PR2957: Build bootstrap code (rt-class-files.stamp) using bootstrap flags (source/target 1.5) - 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): diff -r cc7089689313 -r 2de5d5254c7c patches/ecj/icedtea.patch --- a/patches/ecj/icedtea.patch Tue May 24 17:57:12 2016 +0100 +++ b/patches/ecj/icedtea.patch Mon Aug 15 02:54:13 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 @@ 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 @@ 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 = diff -r cc7089689313 -r 2de5d5254c7c patches/openjdk/2178143-pr2959.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/2178143-pr2959.patch Mon Aug 15 02:54:13 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(); diff -r cc7089689313 -r 2de5d5254c7c patches/openjdk/6260348-pr3068.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6260348-pr3068.patch Mon Aug 15 02:54:13 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 */ diff -r cc7089689313 -r 2de5d5254c7c patches/openjdk/6961123-pr2975.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6961123-pr2975.patch Mon Aug 15 02:54:13 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(); + } diff -r cc7089689313 -r 2de5d5254c7c patches/pr2800-missing_resources.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr2800-missing_resources.patch Mon Aug 15 02:54:13 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 diff -r cc7089689313 -r 2de5d5254c7c patches/pr3137-alt_button_order.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr3137-alt_button_order.patch Mon Aug 15 02:54:13 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; + + /*