changeset 3265:94ea67d446bc

Merge
author Andrew John Hughes <gnu.andrew@redhat.com>
date Mon, 15 Aug 2016 17:07:31 +0100
parents ef5c11436c49 (current diff) 6ea26782250d (diff)
children 1e3410fddbf8
files ChangeLog Makefile.am
diffstat 18 files changed, 1165 insertions(+), 219 deletions(-) [+]
line wrap: on
line diff
--- a/AUTHORS	Wed Aug 10 05:13:49 2016 +0100
+++ b/AUTHORS	Mon Aug 15 17:07:31 2016 +0100
@@ -26,6 +26,7 @@
 Matthias Klose <doko@ubuntu.com>
 Francis Kung <fkung@redhat.com>
 Denis Lila <dlila@redhat.com>
+Felix Lu <flu@redhat.com>
 DJ Lucas <dj@linuxfromscratch.org>
 Omair Majid <omajid@redhat.com>
 Casey Marshall <csm@gnu.org>
--- a/ChangeLog	Wed Aug 10 05:13:49 2016 +0100
+++ b/ChangeLog	Mon Aug 15 17:07:31 2016 +0100
@@ -1,3 +1,243 @@
+2016-08-14  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR3140: Pass $(CC) and $(CXX) to OpenJDK build
+	* Makefile.am:
+	(ICEDTEA_ENV): Set CC and CXX instead
+	of BUILD_GCC and BUILD_CXX. Use $(CC)
+	and $(CXX) instead of hardcoding gcc
+	and g++.
+	* NEWS: Updated.
+
+2016-08-04  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR3129: pax-mark-vm script calls "exit -1" which
+	is invalid in dash
+	* NEWS: Updated.
+	* pax-mark-vm.in:
+	Use POSIX-compliant exit value.
+
+2016-04-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	PR3132: PaX marking fails on filesystems which
+	don't support extended attributes
+	* Makefile.am:
+	(pax-mark-vm): Pass true to pax-mark-vm to fail
+	if PaX marking fails.
+	(pax-mark-vm-debug): Likewise.
+	(pax-mark-vm-ecj): Likewise.
+	* NEWS: Updated.
+	* pax-mark-vm.in:
+	Add a second option, FAIL_ON_ERROR, which will
+	cause the script to exit if it can't PaX mark
+	when set to true, but just issue a warning when
+	set to false.
+
+2016-08-14  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	PR3130: Avoid giving PAX_COMMAND a value if
+	no PaX utility is available
+	* NEWS: Updated.
+
+2014-02-21  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR3130: Avoid giving PAX_COMMAND a value if
+	no PaX utility is available
+	* acinclude.m4:
+	(IT_WITH_PAX): Leave PAX_COMMAND with the empty
+	string rather than "not specified" to avoid build
+	failures.
+	* pax-mark-vm.in: Update PAX_COMMAND check.
+
+2016-07-28  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR3117: Add tests for Java debug info and
+	source files
+	* Makefile.am:
+	(check-java-debug): Guard with
+	ENABLE_JAVA_DEBUGINFO.
+	* NEWS: Updated.
+
+2016-07-15  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR3117: Add tests for Java debug info and
+	source files
+	* Makefile.am:
+	(check-local): Depend on check-java-debug and
+	check-java-src.
+	(clean-tests): Depend on clean-check-java-debug
+	and clean-check-java-src.
+	(.PHONY): Add clean-check-java-src and
+	clean-check-java-debug.
+	(check-java-debug): Adapt Omair Majid's Java debug
+	info test from Fedora RPM to IcedTea.
+	(clean-check-java-debug): Cleanup target for
+	check-java-debug.
+	(check-java-src): Adapt Omair Majid's Java source
+	file test from Fedora RPM to IcedTea.
+	(clean-check-java-src): Cleanup target for
+	check-java-src.
+
+2014-06-10  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR1372: Provide option to build without debugging
+	* INSTALL: Updated.
+	* Makefile.am:
+	(ICEDTEA_ENV): Only set DEBUG_CLASSFILES
+	and DEBUG_BINARIES when ENABLE_JAVA_DEBUGINFO
+	and ENABLE_NATIVE_DEBUGINFO are set, respectively.
+	* NEWS: Updated.
+	* acinclude.m4:
+	(IT_ENABLE_NATIVE_DEBUGINFO): New macro to add
+	option --enable-native-debuginfo.
+	(IT_ENABLE_JAVA_DEBUGINFO): New macro to add
+	option --enable-java-debuginfo.
+	* configure.ac: Invoke new macros.
+
+2016-07-26  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	PR2800: Files are missing from resources.jar
+	* Makefile.am:
+	(MIME_TYPE_CHECK_BUILD_DIR): Add build directory
+	for mime type check.
+	(MIME_TYPE_CHECK_SRCS): Specify sources for
+	mime type check.
+	(EXTRA_DIST): Distribute mime type check sources.
+	(check-local): Depend on check-mimetype.
+	(clean-tests): Depend on clean-check-mimetype.
+	(clean-local): Depend on clean-mimetypecheck.
+	(.PHONY): Depend on clean-check-mimetype,
+	clean-mimetypecheck, clean-add-mime-types-file,
+	clean-add-mime-types-file-debug and
+	clean-add-mime-types-file-boot.
+	(icedtea-against-icedtea): Depend on
+	add-mime-types-file.
+	(clean-icedtea-against-icedtea): Depend on
+	clean-add-mime-types-file.
+	(icedtea-debug-against-icedtea): Depend on
+	add-mime-types-file-debug.
+	(clean-icedtea-debug-against-icedtea): Depend on
+	clean-add-mime-types-file-debug.
+	(add-mime-types-file): Add a symlink to the
+	system mime.types file if found.
+	(clean-add-mime-types-file): Remove symlink
+	to the system mime types file.
+	(add-mime-types-file-debug): Add a symlink to the
+	system mime.types file, if found, in the debug build.
+	(clean-add-mime-types-file-debug): Remove symlink
+	to the system mime types file in the debug build.
+	(icedtea-against-ecj): Depend on add-mime-types-file-boot.
+	(clean-icedtea-against-ecj): Depend on
+	clean-add-mime-types-file-boot.
+	(add-mime-types-file-boot): Add a symlink to the
+	system mime.types file, if found, in the bootstrap build.
+	(clean-add-mime-types-file-boot): Remove symlink
+	to the system mime types file in the bootstrap build.
+	(check-mimetype): Check that we can recognise a HTML
+	file and (if system mime.types is available) a Java file.
+	(clean-check-mimetype): Cleanup after check-mimetype.
+	(mimetypecheck): Build the MIME type check.
+	(clean-mimetypecheck): Remove MIME type check build.
+	(install-data-local): Install the mime.types symlink.
+	* acinclude.m4:
+	(IT_CHECK_FOR_MIME_TYPES): Check for a system mime.types
+	file and define MIME_TYPES_FILE_FOUND if located.
+	* configure.ac:
+	Invoke IT_CHECK_FOR_MIME_TYPES.
+	* test/RH1195203.java: Testcase to get Java to print
+	the MIME type of a file.
+
+2015-05-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	PR2800: Files are missing from resources.jar
+	* Makefile.am:
+	(BUILD_SDK_DIR): Added.
+	(BUILD_JRE_DIR): Likewise.
+	(BUILD_JRE_ARCH_DIR): Redefine using BUILD_SDK_DIR.
+	(BUILD_DEBUG_SDK_DIR): Added.
+	(BUILD_DEBUG_JRE_DIR): Likewise.
+	(BUILD_DEBUG_JRE_ARCH_DIR): Redefine using
+	BUILD_DEBUG_SDK_DIR.
+	(BUILD_BOOT_SDK_DIR): Added.
+	(BUILD_BOOT_JRE_DIR): Likewise.
+	(BUILD_BOOT_JRE_ARCH_DIR): Redefine using
+	BUILD_BOOT_SDK_DIR.
+
+2015-06-03  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR2800: Files are missing from resources.jar
+	* Makefile.am:
+	(BUILD_BOOT_JRE_ARCH_DIR): Added.
+
+2016-03-04  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR3112: Provide option to disable SystemTap tests
+	* INSTALL: Document --disable-systemtap-tests.
+	* Makefile.am:
+	(SYSTEMTAP_TEST_SUITE): Define if SystemTap tests
+	are enabled.
+	(check-local): Use SYSTEMTAP_TEST_SUITE in place
+	of check-tapset.
+	(.PHONY): Add check-jdk, check-hotspot, check-langtools,
+	check-tapset, check-tapset-probes and check-tapset-jstack
+	* NEWS: Updated.
+	* acinclude.m4:
+	(IT_DISABLE_SYSTEMTAP_TESTS): Add option to
+	disable SystemTap tests.
+	* configure.ac:
+	Call IT_DISABLE_SYSTEMTAP_TESTS.
+
+2016-08-14  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	PR3139: Update documentation
+	* NEWS: Updated.
+	* README: Remove NIO2 backport information
+	as this is long gone.
+
+2010-07-22  Andrew John Hughes  <ahughes@redhat.com>
+
+	PR3139: Update documentation
+	* INSTALL,
+	* README: Updated to match current state of
+	play and extended with missing information.
+	Use IcedTea or IcedTea 1.x in place of
+	"IcedTea6".
+	* acinclude.m4: Add parameter information to
+	configure help for all options.
+	(FIND_ENDORSED_JARS): Remove unused macro and
+	correct typos.
+
+2016-07-17  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	PR3092: SystemTap is heavily confused
+	by multiple JDKs
+	* AUTHORS: Added Felix Lu.
+	* NEWS: Updated.
+
+2016-07-13  Felix Lu  <flu@redhat.com>
+
+	PR3092: SystemTap is heavily confused
+	by multiple JDKs
+	* tapset/hotspot.stp.in,
+	* tapset/jstack.stp.in:
+	Use the new private keyword in SystemTap
+	>= 3.0 to resolve global variable name
+	collision and function overloading
+	to select the correct jstack_call at runtime.
+
+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-08-09  Andrew John Hughes  <gnu.andrew@redhat.com>
 
 	* patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch:
--- a/INSTALL	Wed Aug 10 05:13:49 2016 +0100
+++ b/INSTALL	Mon Aug 15 17:07:31 2016 +0100
@@ -1,5 +1,5 @@
-Building IcedTea6
-=================
+Building IcedTea
+================
 
 For convenience we've provided make targets that automatically
 download, extract and patch the source code from openjdk.java.net, in
@@ -9,7 +9,7 @@
 
 A bootstrap JDK, either:
   - GNU libgcj >= 4.3.0 (or equivalent class library based on GNU Classpath >= 0.95) (the default)
-  - IcedTea6
+  - IcedTea 1.x
 Eclipse Java Compiler (ecj)
 CUPS
 libX11 (xproto, libX11, libXext, libXtst, libXi, libXt, libXinerama, libXcomposite, libXau, libXdmcp, libxcb)
@@ -63,10 +63,10 @@
 in that order.
 
 A quick build can be performed by passing --disable-bootstrap.
-This requires a recent version of IcedTea6 as the boot JDK, so
+This requires a recent version of IcedTea 1.x as the boot JDK, so
 the first three JDKs above are not searched for.
 
-Note that IcedTea7 can not be used to build IcedTea6.
+Note that IcedTea 2.x and 3.x can not be used to build IcedTea 1.x.
 
 There is currently no install target.  IcedTea ends up in
 openjdk.build when the build completes.
@@ -85,20 +85,15 @@
 to configure:
 
 * --disable-docs: Don't build the Javadoc documentation.
+* --disable-bootstrap: Perform a quick build using an installed
+  copy of IcedTea 1.x.  If a directory is not specified, a check against
+  the list presented above is performed.
 * --with-openjdk-src-dir: Copy the specified OpenJDK tree, rather than
   downloading and extracting a tarball.
 * --disable-optimizations: Build with -O0.
 * --enable-hg: Checkout the OpenJDK tree from Mercurial, rather than
   downloading and extracting a tarball.
-* --enable-system-lcms: Build using the system installation of LCMS2, not
-  the version in-tree.
-* --enable-system-kerberos: Link against the system Kerberos library and
-  query it at runtime to obtain the cache location, rather than using a
-  hardcoded value.
 * --with-gcj: Compile ecj to native code with gcj prior to building.
-* --disable-bootstrap: Perform a quick build using an installed
-  copy of IcedTea6.  If a directory is not specified, a check against
-  the list presented above is performed.
 * --with-parallel-jobs: Run the specified number of parallel jobs when
   building HotSpot and the JDK.  If this option is passed without an
   argument, the number of online processors plus one is used.
@@ -144,12 +139,24 @@
 * --with-tzdata-dir: Specify the location of Java timezone data, defaulting to /usr/share/javazi.
 * --with-abs-install-dir: The final install location of the j2sdk-image, for use in the SystemTap tapset.
 * --with-llvm-config: Specify the location of the llvm-config binary.
+* --with-hotspot-build: The HotSpot to use, defaulting to 'original'.
+* --with-pax: The command used to PaX-mark built binaries.
+* --enable-Werror: Turn gcc & javac warnings into errors.
+* --disable-jar-compression: Don't compress the OpenJDK JAR files.
+* --disable-downloading: Don't download tarballs if not available; fail instead.
 * --disable-bootstrap-tools: Use javac and javah from langtools, not the bootstrap JDK.
 * --with-fonts-dir: Specify the location of system fonts. This is currently only used on Gentoo systems.
+* --enable-native-debuginfo: Include debuginfo in native binaries.
+* --enable-java-debuginfo: Include debuginfo in Java class files.
 
 Other options may be supplied which enable or disable new features.
 These are documented fully in the relevant section below.
 
+* --disable-tests: Disable the running of all JTReg tests.
+* --disable-hotspot-tests: Disable the running of the HotSpot JTReg suite.
+* --disable-langtools-tests: Disable the running of the langtools JTReg suite.
+* --disable-jdk-tests: Disable the running of the jdk JTreg suite.
+* --disable-systemtap-tests: Disable the running of the SystemTap test suite.
 * --enable-pulse-java: Build the PulseAudio sound provider.
 * --disable-xrender: Don't include the XRender pipeline.
 * --enable-systemtap: Include support for tracing using systemtap.
@@ -158,17 +165,21 @@
 * --enable-jamvm: Replace HotSpot with JamVM.
 * --enable-shark: Build the Shark LLVM-based JIT.
 * --enable-zero: Build the zero assembler port on x86/x86_64/sparc platforms.
-* --with-hotspot-build: The HotSpot to use, defaulting to 'original'.
 * --with-rhino: Include Javascript support using Rhino.
 * --with-additional-vms=vm-list: Additional VMs to build using the system described
   below.
 * --enable-lcms2: Use LCMS 2 backport from OpenJDK 7 rather than LCMS 1.
 * --enable-non-nss-curves: Define curves beyond the three specified by NSS (NIST P-{256,384,521})
+* --enable-system-lcms: Build using the system installation of LCMS2, not
+  the version in-tree.
+* --enable-system-kerberos: Link against the system Kerberos library and
+  query it at runtime to obtain the cache location, rather than using a
+  hardcoded value.
 
 Testing
 =======
 
-IcedTea6 includes support for running the test suite included with
+IcedTea includes support for running the test suite included with
 OpenJDK, using the in-tree copy of JTReg.  Invoking 'make check' will
 cause the HotSpot, JDK and langtools test suites to be run.  It will
 exit with an error code if a regression test fails, so use 'make check
@@ -176,57 +187,47 @@
 failures occur in one.  The individual test suites may be run using
 the check-hotspot, check-jdk and check-langtools targets respectively,
 or by setting jtreg_checks e.g. jtreg_checks="langtools hotspot".
+The --disable-tests option can be used to turn off all tests, and the
+--disable-{hotspot,langtools,jdk}-tests options can be used to turn
+off individual suites.  This is useful when using 'make distcheck'
+as a way of avoiding running the extensive JDK test suite which
+takes several hours.
 
 The PulseAudio provider
 =======================
 
-IcedTea6 includes an implementation of the javax.sound.* APIs using
+IcedTea includes an implementation of the javax.sound.* APIs using
 PulseAudio which can be enabled using --enable-pulse-java.   The resulting
 provider is org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider.
 
 XRender Support
 ===============
 
-IcedTea6 includes support for an Xrender-based rendering pipeline
+IcedTea includes support for an Xrender-based rendering pipeline
 developed by Clemens Eisserer (http://linuxhippy.blogspot.com/).  This
 is compiled by default, and can be disabled using --disable-xrender.
 To actually use the pipeline, the sun.java2d.xrender property needs to
 be set to true, e.g.  by passing the -Dsun.java2d.xrender=True option
 to java.
 
-NIO2 Backport
-=============
-
-IcedTea6 includes a backport of NIO2 from OpenJDK7; see
-http://openjdk.java.net/projects/nio/.  This provides support for
-asynchronous I/O and an improved file system API, providing access to
-POSIX file permissions, timestamps, extended attributes and ACLs and
-allowing directories to be watched.  This is enabled using the
---enable-nio2 option.
-
-As new classes can not be added to the java.* and javax.* namespace of
-the 1.6 API, the new java.nio classes are contained in
-org.classpath.icedtea.java.nio, so code will needed to be adjusted to
-work with the backport.
-
 SystemTap
 =========
 
-IcedTea6 includes work to allow the existing DTrace probes included in
+IcedTea includes work to allow the existing DTrace probes included in
 OpenJDK to be used with SystemTap.  This is enabled using the
 --enable-systemtap option, and requires version 0.9.5 or later (0.9.9
 or later if you want Java method tracing).  The tapset needs to know
 the final install location of the JDK, so the --with-abs-install-dir
 should also be used to specify this.  If not set, it defaults to the
-in-tree location of openjdk/build/<os>-<arch>/j2sdk-image and requires
+in-tree location of openjdk.build/j2sdk-image and requires
 manual changes to tapset/hotspot.stp to work from elsewhere. For
 example, if you plan to install the resulting build in
 /usr/lib/jvm/java-1.6.0-openjdk, then you should specify
 --enable-systemtap
 --with-abs-install-dir=/usr/lib/jvm/java-1.6.0-openjdk.
 
-NSS Security Provider
-=====================
+The NSS PKCS11 Security Provider
+================================
 
 OpenJDK includes an NSS-based security provider in the form of
 sun.security.pkcs11.SunPKCS11.  However, as this needs to know the
@@ -240,12 +241,12 @@
 CACAO
 =====
 
-IcedTea6 can use CACAO as the virtual machine, as opposed to HotSpot.
+IcedTea can use CACAO as the virtual machine, as opposed to HotSpot.
 One advantage of this is that CACAO has a JIT implementation for
 more platforms than HotSpot, including ppc, ppc64, arm and mips.
 When --enable-cacao is specified, CACAO will be downloaded and built,
 followed by the JDK portion of OpenJDK resulting in a CACAO+OpenJDK
-image in openjdk/build/<os>-<arch>/j2sdk-image.  The --with-cacao-home
+image in openjdk.build/j2sdk-image.  The --with-cacao-home
 option can be used to specify the use of an existing CACAO install
 instead, and --with-cacao-src-zip/dir options exist to allow the use
 of a pre-downloaded zip or source tree respectively.
@@ -253,16 +254,16 @@
 JamVM
 =====
 
-IcedTea6 can use JamVM as the virtual machine, as opposed to HotSpot.
+IcedTea can use JamVM as the virtual machine, as opposed to HotSpot.
 When --enable-jamvm is specified, JamVM will be downloaded and built,
 followed by the JDK portion of OpenJDK resulting in a JamVM+OpenJDK
-image in openjdk/build/<os>-<arch>/j2sdk-image.  The
---with-jamvm-src-zip option exists to allow the use of a pre-downloaded zip.
+image in openjdk.build/j2sdk-image.  The --with-jamvm-src-zip option
+exists to allow the use of a pre-downloaded zip.
 
 Zero & Shark
 ============
 
-IcedTea6 includes a zero assembler port of HotSpot, which avoids
+IcedTea includes a zero assembler port of HotSpot, which avoids
 architecture-specific code as much as possible, allowing an
 interpreter to be built and run on most platforms (albeit very
 slowly).  As HotSpot only includes JITs for x86, x86_64 and SPARC, the
@@ -289,7 +290,7 @@
 hotspot.map file maps the name to a changeset from a given repository
 URL.  During the build, it downloads HotSpot from
 ${URL}/archive/${CHANGESET}.tar.gz and the resulting file is verified
-using the MD5 sum stored in hotspot.map.
+using the SHA256 sum stored in hotspot.map.
 
 New build selections may be provided by providing further mappings in
 the hotspot.map file.  The name can be anything
@@ -311,12 +312,13 @@
 download stage and just verifies that the zip's MD5 sum matches that
 of the requested build.
 
-At present, IcedTea6 supports the 'original' HotSpot 23 provided as
+At present, IcedTea 1.x supports the 'original' HotSpot 23 provided as
 part of the upstream tarball.  Note that the norm. is for up to one
-alternate (non-default) build to be supported and just passing --with-hotspot-build
-(equivalent to --with-hotspot-build=yes) will always provide the alternate
-build.  Conversely, passing --without-hotspot-build (equivalent to
---with-hotspot-build=no) provides the original build from the OpenJDK tarball.
+alternate (non-default) build to be supported and just passing
+--with-hotspot-build (equivalent to --with-hotspot-build=yes) will
+always provide the alternate build.  Conversely, passing
+--without-hotspot-build (equivalent to --with-hotspot-build=no)
+provides the original build from the OpenJDK tarball.
 
 When no option is specified, the default build is used.  At present,
 this is 'original'.
@@ -324,7 +326,7 @@
 JavaScript Support
 ==================
 
-IcedTea6 adds Javascript support via the javax.script API by using
+IcedTea adds Javascript support via the javax.script API by using
 an existing installation of Rhino.  Support is enabled by default,
 with the following locations being searched for a Rhino JAR file:
 
--- a/Makefile.am	Wed Aug 10 05:13:49 2016 +0100
+++ b/Makefile.am	Mon Aug 15 17:07:31 2016 +0100
@@ -34,12 +34,20 @@
 ICEDTEA_BOOT_DIR = $(abs_top_builddir)/bootstrap/icedtea
 JAMVM_IMPORT_PATH = $(abs_top_builddir)/jamvm/install/hotspot
 SERVER_DIR = hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server
-BUILD_JRE_ARCH_DIR = $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR)
-BUILD_DEBUG_JRE_ARCH_DIR = $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR)
+BUILD_SDK_DIR = $(BUILD_OUTPUT_DIR)/j2sdk-image
+BUILD_JRE_DIR = $(BUILD_OUTPUT_DIR)/j2re-image
+BUILD_JRE_ARCH_DIR = $(BUILD_SDK_DIR)/jre/lib/$(INSTALL_ARCH_DIR)
+BUILD_DEBUG_SDK_DIR = $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image
+BUILD_DEBUG_JRE_DIR = $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image
+BUILD_DEBUG_JRE_ARCH_DIR = $(BUILD_DEBUG_SDK_DIR)/jre/lib/$(INSTALL_ARCH_DIR)
+BUILD_BOOT_SDK_DIR = $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image
+BUILD_BOOT_JRE_DIR = $(ECJ_BUILD_OUTPUT_DIR)/j2re-image
+BUILD_BOOT_JRE_ARCH_DIR = $(BUILD_BOOT_SDK_DIR)/jre/lib/$(INSTALL_ARCH_DIR)
 FONTCONFIG_PATH = openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs
 REWRITER_BUILD_DIR = $(abs_top_builddir)/rewriter.build
 GENERATED_BUILD_DIR = $(abs_top_builddir)/generated.build
 CRYPTO_CHECK_BUILD_DIR = $(abs_top_builddir)/cryptocheck.build
+MIME_TYPE_CHECK_BUILD_DIR = $(abs_top_builddir)/test/mimetypecheck.build
 
 # Source directories
 
@@ -250,6 +258,10 @@
 endif
 endif
 
+if !DISABLE_SYSTEMTAP_TESTS
+SYSTEMTAP_TEST_SUITE = check-tapset
+endif
+
 # Target to ensure a patched OpenJDK tree containing Zero & Shark
 # and any overlays is available in $(abs_top_builddir)/openjdk
 OPENJDK_TREE = stamps/overlay.stamp
@@ -263,6 +275,7 @@
 
 REWRITER_SRCS = $(top_srcdir)/rewriter/com/redhat/rewriter/ClassRewriter.java
 CRYPTO_CHECK_SRCS = $(top_srcdir)/TestCryptoLevel.java
+MIME_TYPE_CHECK_SRCS = $(top_srcdir)/test/RH1195203.java
 
 # Relative path to JTreg tool
 JTREG_DIR = src/jtreg
@@ -639,7 +652,12 @@
 	patches/openjdk/8071705-pr2820-menu_misbehaviour.patch \
 	patches/openjdk/8150954-pr2868-composite_desktop.patch \
 	patches/pr2890-system_cacerts.patch \
-	patches/openjdk/6863746-pr2951-no_ct.sym_in_javap.patch
+	patches/openjdk/6863746-pr2951-no_ct.sym_in_javap.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 += \
@@ -840,13 +858,11 @@
 	ANT_RESPECT_JAVA_HOME="TRUE" \
 	DISTRIBUTION_ID="$(DIST_ID)" \
 	DERIVATIVE_ID="$(ICEDTEA_NAME) $(PACKAGE_VERSION)$(ICEDTEA_REV)" \
-	DEBUG_CLASSFILES="true" \
-	DEBUG_BINARIES="true" \
 	VERBOSE="$(VERBOSE)" \
 	ALT_OUTPUTDIR="$(BUILD_OUTPUT_DIR)" \
 	STATIC_CXX="false" \
-	BUILD_GCC=gcc$(GCC_SUFFIX) \
-	BUILD_CXX=g++$(GCC_SUFFIX) \
+	CC=$(CC)$(GCC_SUFFIX) \
+	CXX=$(CXX)$(GCC_SUFFIX) \
 	COMPILER_WARNINGS_FATAL="$(WERROR_STATUS)" \
 	UNLIMITED_CRYPTO="true"
 
@@ -939,6 +955,16 @@
 	COMPRESS_JARS="true"
 endif
 
+if ENABLE_NATIVE_DEBUGINFO
+ICEDTEA_ENV += \
+	DEBUG_BINARIES="true"
+endif
+
+if ENABLE_JAVA_DEBUGINFO
+ICEDTEA_ENV += \
+	DEBUG_CLASSFILES="true"
+endif
+
 # OpenJDK ecj build environment.
 ICEDTEA_ENV_ECJ = $(ICEDTEA_ENV) \
 	ALT_OUTPUTDIR="$(ECJ_BUILD_OUTPUT_DIR)" \
@@ -979,16 +1005,19 @@
 	rewriter/agpl-3.0.txt \
 	$(REWRITER_SRCS) \
 	$(TAPSET_TEST_SRCS) \
-	$(CRYPTO_CHECK_SRCS)
+	$(CRYPTO_CHECK_SRCS) \
+	$(MIME_TYPE_CHECK_SRCS)
 
 # Top-Level Targets
 # =================
 
 all-local: icedtea-against-icedtea
 
-check-local: jtregcheck check-tapset
-
-clean-tests: clean-jtreg clean-tapset-report
+check-local: jtregcheck $(SYSTEMTAP_TEST_SUITE) check-mimetype \
+ check-java-debug check-java-src
+
+clean-tests: clean-jtreg clean-tapset-report clean-check-mimetype \
+ clean-check-java-debug clean-check-java-src
 	if [ $(abs_top_srcdir) != $(abs_top_builddir) ] ; then \
 	  if [ -e test ] ; then \
 	    rmdir test ; \
@@ -1001,7 +1030,7 @@
  clean-icedtea-against-ecj clean-extract-ecj clean-generated clean-replace-hotspot \
  clean-rewriter clean-rewrite-rhino clean-rt clean-bootstrap-directory \
  clean-bootstrap-directory-ecj clean-bootstrap-directory-symlink \
- clean-bootstrap-directory-symlink-ecj clean-fonts clean-cryptocheck
+ clean-bootstrap-directory-symlink-ecj clean-fonts clean-cryptocheck clean-mimetypecheck
 	if [ -e bootstrap ]; then \
 	  rmdir bootstrap ; \
 	fi
@@ -1030,7 +1059,7 @@
 	clean-tools-jar clean-copy clean-rt hotspot \
 	hotspot-helper clean-extra clean-jtreg clean-jtreg-reports \
 	clean-add-zero clean-add-zero-debug clean-icedtea clean-icedtea-debug \
-	clean-icedtea-against-ecj \
+	clean-icedtea-against-ecj clean-check-mimetype clean-mimetypecheck \
 	clean-jamvm clean-add-jamvm clean-add-jamvm-debug \
 	clean-cacao clean-add-cacao clean-add-cacao-debug \
 	clean-ports clean-overlay clean-extract-ecj clean-extract clean-extract-openjdk \
@@ -1039,10 +1068,13 @@
 	clean-add-pulseaudio clean-add-pulseaudio-debug clean-add-nss clean-add-nss-debug \
 	clean-add-tzdata-support clean-add-tzdata-support-debug clean-add-systemtap-ecj \
 	clean-add-pulseaudio-ecj clean-add-nss-ecj clean-add-tzdata-support-ecj clean-fonts \
-	clean-download-hotspot clean-tests clean-tapset-report jtregcheck clean-pax-mark-vm \
+	clean-download-hotspot clean-tests clean-tapset-report clean-pax-mark-vm \
 	clean-pax-mark-vm-debug clean-pax-mark-vm-ecj clean-check-crypto clean-check-crypto-debug \
 	clean-check-crypto-boot clean-cryptocheck clean-runnable-icedtea clean-runnable-icedtea-debug \
-	clean-runnable-icedtea-ecj
+	check-jdk check-hotspot check-langtools jtregcheck check-tapset check-tapset-probes \
+	check-tapset-jstack clean-runnable-icedtea-ecj clean-add-mime-types-file \
+	clean-add-mime-types-file-debug clean-add-mime-types-file-boot clean-check-java-src \
+	clean-check-java-debug
 
 env:
 	@echo 'unset JAVA_HOME'
@@ -1761,13 +1793,14 @@
 stamps/icedtea-against-icedtea.stamp:  stamps/runnable-icedtea.stamp \
  stamps/add-jamvm.stamp stamps/add-cacao.stamp stamps/add-zero.stamp \
  stamps/add-systemtap.stamp stamps/add-pulseaudio.stamp stamps/add-nss.stamp \
- stamps/add-tzdata-support.stamp stamps/add-archive.stamp stamps/check-crypto.stamp
+ stamps/add-tzdata-support.stamp stamps/add-archive.stamp stamps/check-crypto.stamp \
+ stamps/add-mime-types-file.stamp
 	mkdir -p stamps
 	touch $@
 
 clean-icedtea-against-icedtea: clean-add-jamvm clean-add-zero clean-add-cacao \
  clean-add-systemtap clean-add-pulseaudio clean-add-nss clean-add-tzdata-support \
- clean-add-archive clean-check-crypto clean-runnable-icedtea
+ clean-add-archive clean-check-crypto clean-runnable-icedtea clean-add-mime-types-file
 	rm -f stamps/icedtea-against-icedtea.stamp
 
 stamps/runnable-icedtea-debug.stamp: stamps/icedtea-debug.stamp stamps/pax-mark-vm-debug.stamp
@@ -1781,14 +1814,15 @@
  stamps/add-jamvm-debug.stamp stamps/add-cacao-debug.stamp \
  stamps/add-zero-debug.stamp stamps/add-systemtap-debug.stamp stamps/add-pulseaudio-debug.stamp \
  stamps/add-nss-debug.stamp stamps/add-tzdata-support-debug.stamp stamps/add-archive-debug.stamp \
- stamps/check-crypto-debug.stamp
+ stamps/check-crypto-debug.stamp stamps/add-mime-types-file-debug.stamp
 	mkdir -p stamps
 	touch $@
 
 clean-icedtea-debug-against-icedtea: clean-add-zero-debug \
  clean-add-jamvm-debug clean-add-cacao-debug clean-add-systemtap-debug \
  clean-add-pulseaudio-debug clean-add-nss-debug clean-add-tzdata-support-debug \
- clean-add-archive-debug clean-runnable-icedtea-debug clean-check-crypto-debug
+ clean-add-archive-debug clean-runnable-icedtea-debug clean-check-crypto-debug \
+ clean-add-mime-types-file-debug
 	rm -f stamps/icedtea-debug-against-icedtea.stamp
 
 stamps/add-systemtap.stamp: stamps/icedtea.stamp
@@ -2064,7 +2098,7 @@
 
 stamps/pax-mark-vm.stamp: stamps/icedtea.stamp
 if WITH_PAX
-	$(abs_top_builddir)/pax-mark-vm $(BUILD_OUTPUT_DIR)/j2sdk-image
+	$(abs_top_builddir)/pax-mark-vm $(BUILD_SDK_DIR) true
 endif
 	touch $@
 
@@ -2073,7 +2107,7 @@
 
 stamps/pax-mark-vm-debug.stamp: stamps/icedtea-debug.stamp
 if WITH_PAX
-	$(abs_top_builddir)/pax-mark-vm $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image
+	$(abs_top_builddir)/pax-mark-vm $(BUILD_DEBUG_SDK_DIR) true
 endif
 	touch $@
 
@@ -2100,6 +2134,34 @@
 clean-check-crypto-debug:
 	rm -f stamps/check-crypto-debug.stamp
 
+stamps/add-mime-types-file.stamp: stamps/icedtea.stamp
+if MIME_TYPES_FILE_FOUND
+	if [ -e $(BUILD_SDK_DIR)/jre/lib ] ; then \
+	  ln -sf $(MIME_TYPES_FILE) $(BUILD_SDK_DIR)/jre/lib/mime.types ; \
+	fi
+endif
+	touch $@
+
+clean-add-mime-types-file:
+	if [ -e $(BUILD_SDK_DIR)/jre/lib/mime.types ] ; then \
+	  rm -vf $(BUILD_SDK_DIR)/jre/lib/mime.types ; \
+	fi
+	rm -f stamps/add-mime-types-file.stamp
+
+stamps/add-mime-types-file-debug.stamp: stamps/icedtea-debug.stamp
+if MIME_TYPES_FILE_FOUND
+	if [ -e $(BUILD_DEBUG_SDK_DIR)/jre/lib ] ; then \
+	  ln -sf $(MIME_TYPES_FILE) $(BUILD_DEBUG_SDK_DIR)/jre/lib/mime.types ; \
+	fi
+endif
+	touch $@
+
+clean-add-mime-types-file-debug:
+	if [ -e $(BUILD_DEBUG_SDK_DIR)/jre/lib/mime.types ] ; then \
+	  rm -vf $(BUILD_DEBUG_SDK_DIR)/jre/lib/mime.types ; \
+	fi
+	rm -f stamps/add-mime-types-file-debug.stamp
+
 # OpenJDK ecj Targets
 # ===================
 
@@ -2128,12 +2190,13 @@
 
 stamps/icedtea-against-ecj.stamp: stamps/runnable-icedtea-ecj.stamp stamps/add-systemtap-ecj.stamp \
  stamps/add-pulseaudio-ecj.stamp stamps/add-nss-ecj.stamp stamps/add-tzdata-support-ecj.stamp \
- stamps/add-archive-ecj.stamp stamps/check-crypto-boot.stamp
+ stamps/add-archive-ecj.stamp stamps/check-crypto-boot.stamp stamps/add-mime-types-file-boot.stamp
 	mkdir -p stamps
 	touch $@
 
 clean-icedtea-against-ecj: clean-add-systemtap-ecj clean-add-pulseaudio-ecj clean-add-nss-ecj \
- clean-add-tzdata-support-ecj clean-add-archive-ecj clean-runnable-icedtea-ecj clean-check-crypto-boot
+ clean-add-tzdata-support-ecj clean-add-archive-ecj clean-runnable-icedtea-ecj clean-check-crypto-boot \
+ clean-add-mime-types-file-boot
 	rm -f stamps/icedtea-against-ecj.stamp
 
 stamps/add-systemtap-ecj.stamp: stamps/icedtea-ecj.stamp
@@ -2274,7 +2337,7 @@
 
 stamps/pax-mark-vm-ecj.stamp: stamps/icedtea-ecj.stamp
 if WITH_PAX
-	$(abs_top_builddir)/pax-mark-vm $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image
+	$(abs_top_builddir)/pax-mark-vm $(BUILD_BOOT_SDK_DIR) true
 endif
 	touch $@
 
@@ -2291,6 +2354,20 @@
 clean-check-crypto-boot:
 	rm -f stamps/check-crypto-boot.stamp
 
+stamps/add-mime-types-file-boot.stamp: stamps/icedtea-ecj.stamp
+if MIME_TYPES_FILE_FOUND
+	if [ -e $(BUILD_BOOT_SDK_DIR)/jre/lib ] ; then \
+	  ln -sf $(MIME_TYPES_FILE) $(BUILD_BOOT_SDK_DIR)/jre/lib/mime.types ; \
+	fi
+endif
+	touch $@
+
+clean-add-mime-types-file-boot:
+	if [ -e $(BUILD_BOOT_SDK_DIR)/jre/lib/mime.types ] ; then \
+	  rm -vf $(BUILD_BOOT_SDK_DIR)/jre/lib/mime.types ; \
+	fi
+	rm -f stamps/add-mime-types-file-boot.stamp
+
 # Rebuild targets
 
 rebuild:
@@ -2709,7 +2786,7 @@
 # end additional VMs
 
 
-# jtreg
+# Test cases
 
 stamps/jtreg.stamp: stamps/icedtea-against-icedtea.stamp
 	rm -rf test/jtreg/classes
@@ -2844,6 +2921,64 @@
 	rm -f test/check-stap.log
 endif
 
+stamps/check-mimetype.stamp: stamps/mimetypecheck.stamp stamps/icedtea.stamp
+	if [ -e $(BUILD_SDK_DIR)/bin/java ] ; then \
+	  echo "<html><head/><body/></html>" > $(MIME_TYPE_CHECK_BUILD_DIR)/test.html ; \
+	  expected="text/html" ; \
+	  html=$$($(BUILD_SDK_DIR)/bin/java -cp $(MIME_TYPE_CHECK_BUILD_DIR) RH1195203 \
+	    $(MIME_TYPE_CHECK_BUILD_DIR)/test.html) ; \
+	  if test "x$${html}" != "x$${expected}" ; then \
+	    echo "MIME type test failed; expected $${expected}, got $${html}" ; \
+	    exit -1; \
+	  fi ; \
+	fi
+if MIME_TYPES_FILE_FOUND
+	if [ -e $(BUILD_SDK_DIR)/bin/java ] ; then \
+	  expected="text/x-java-source" ; \
+	  java=$$($(BUILD_SDK_DIR)/bin/java -cp $(MIME_TYPE_CHECK_BUILD_DIR) RH1195203 \
+	    $(MIME_TYPE_CHECK_SRCS)) ; \
+	  if test "x$${java}" != "x$${expected}"; then \
+	    echo "MIME type test failed; expected $${expected}, got $${java}" ; \
+	    exit -1; \
+	  fi ; \
+	fi
+endif
+	mkdir -p stamps
+	touch $@
+
+clean-check-mimetype:
+	rm -f $(MIME_TYPE_CHECK_BUILD_DIR)/test.html
+	rm -f stamps/check-mimetype.stamp
+
+# Check class files, both from in-tree and generated sources, contain debug info
+stamps/check-java-debug.stamp: stamps/icedtea.stamp
+if ENABLE_JAVA_DEBUGINFO
+	@echo "Checking that Java classes include debug info"
+	if [ -e $(BUILD_SDK_DIR)/bin/javap ] ; then \
+	  $(BUILD_SDK_DIR)/bin/javap -l java.lang.Object | grep "Compiled from" ; \
+	  $(BUILD_SDK_DIR)/bin/javap -l java.lang.Object | grep LineNumberTable ; \
+	  $(BUILD_SDK_DIR)/bin/javap -l java.lang.Object | grep LocalVariableTable ; \
+	  $(BUILD_SDK_DIR)/bin/javap -l java.nio.ByteBuffer | grep "Compiled from" ; \
+	  $(BUILD_SDK_DIR)/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable ; \
+	  $(BUILD_SDK_DIR)/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable ; \
+	fi
+endif
+	mkdir -p stamps
+	touch $@
+
+clean-check-java-debug:
+	rm -f stamps/check-java-debug.stamp
+
+# Check source files are included in the source zip
+stamps/check-java-src.stamp: stamps/icedtea.stamp
+	@echo "Checking for Java sources in src.zip"
+	$(UNZIP) -l $(BUILD_SDK_DIR)/src.zip | grep 'sun.misc.Unsafe'
+	mkdir -p stamps
+	touch $@
+
+clean-check-java-src:
+	rm -f stamps/check-java-src.stamp
+
 # Support classes for non-OpenJDK bootstraps
 
 # rt.jar additional class files.
@@ -2903,6 +3038,19 @@
 	rm -rf $(CRYPTO_CHECK_BUILD_DIR)
 	rm -f stamps/cryptocheck.stamp
 
+# Mime Type Check
+
+stamps/mimetypecheck.stamp: $(INITIAL_BOOTSTRAP_LINK_STAMP)
+	mkdir -p $(MIME_TYPE_CHECK_BUILD_DIR)
+	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
+	  -d $(MIME_TYPE_CHECK_BUILD_DIR) $(MIME_TYPE_CHECK_SRCS)
+	mkdir -p stamps
+	touch $@
+
+clean-mimetypecheck:
+	rm -rf $(MIME_TYPE_CHECK_BUILD_DIR)
+	rm -f stamps/mimetypecheck.stamp
+
 # Target Aliases
 # ===============
 
@@ -2920,6 +3068,12 @@
 
 add-jamvm-debug: stamps/add-jamvm-debug.stamp
 
+add-mime-types-file: stamps/add-mime-types-file.stamp
+
+add-mime-types-file-debug: stamps/add-mime-types-file-debug.stamp
+
+add-mime-types-file-boot: stamps/add-mime-types-file-boot.stamp
+
 add-nss: stamps/add-nss.stamp
 
 add-nss-debug: stamps/add-nss-debug.stamp
@@ -2964,6 +3118,12 @@
 
 check-crypto-debug: stamps/check-crypto-debug.stamp
 
+check-java-src: stamps/check-java-src.stamp
+
+check-java-debug: stamps/check-java-debug.stamp
+
+check-mimetype: stamps/check-mimetype.stamp
+
 cryptocheck: stamps/cryptocheck.stamp
 
 download: stamps/download.stamp
@@ -3014,6 +3174,8 @@
 
 liveconnect-dist: stamps/liveconnect-dist.stamp
 
+mimetypecheck: stamps/mimetypecheck.stamp
+
 native-ecj: stamps/native-ecj.stamp
 
 overlay: stamps/overlay.stamp
--- a/NEWS	Wed Aug 10 05:13:49 2016 +0100
+++ b/NEWS	Mon Aug 15 17:07:31 2016 +0100
@@ -14,11 +14,18 @@
 
 New in release 1.14.0 (201X-XX-XX):
 
+* New features
+  - PR1372: Provide option to build without debugging
+  - PR2083: Add support for building Zero on AArch64
+  - PR3112: Provide option to disable SystemTap tests
 * 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()
@@ -26,13 +33,21 @@
   - S8076221, PR2808: Disable RC4 cipher suites
 * 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
+  - PR3092: SystemTap is heavily confused by multiple JDKs
+  - PR3117: Add tests for Java debug info and source files
+  - PR3129: pax-mark-vm script calls "exit -1" which is invalid in dash
+  - PR3130: Avoid giving PAX_COMMAND a value if no PaX utility is available
+  - PR3132: PaX marking fails on filesystems which don't support extended attributes
+  - PR3137: GTKLookAndFeel does not honor gtk-alternative-button-order
+  - PR3139: Update documentation
+  - PR3140: Pass $(CC) and $(CXX) to OpenJDK build
 
 New in release 1.13.11 (2016-05-05):
 
--- a/README	Wed Aug 10 05:13:49 2016 +0100
+++ b/README	Mon Aug 15 17:07:31 2016 +0100
@@ -1,5 +1,5 @@
-IcedTea6
-========
+IcedTea
+=======
 
 The IcedTea project provides a harness to build the source code from
 openjdk.java.net using Free Software tools and dependencies.
@@ -7,6 +7,8 @@
 IcedTea addresses two problems: it eliminates the build requirement on
 proprietary build tools and provides additional patches and features
 (such as Javascript support via Rhino) not available in OpenJDK.
+It also provides support for using the alternative CACAO & JamVM
+virtual machines.
 
 See INSTALL for build instructions.
 
@@ -24,7 +26,7 @@
   http://icedtea.classpath.org/wiki/FrequentlyAskedQuestions
 
 Anonymous Mercurial checkout:
-  hg clone http://icedtea.classpath.org/hg/icedtea6
+  hg clone http://icedtea.classpath.org/hg/icedtea
 
 Java compatibility
 ------------------
@@ -65,7 +67,7 @@
 
 Both Zero and Shark are now part of upstream OpenJDK.
 
-On ARM32, IcedTea6 adds a native JIT port built on top of Zero, which
+On ARM32, there is alsos a native JIT port built on top of Zero, which
 is built on this platform by default.
 
 CACAO as VM
@@ -97,9 +99,9 @@
 systemtap hotspot.stp tapset for easy tracing with systemtap's stap
 utility. The probes are documented in tapset/hotspot.stp.
 
-This requires the systemtap-sdt-devel package as build dependency and
+This requires the systemtap-sdt-devel package as a build dependency and
 optionally the systemtap package at run time when the user want to use
-the tapset to trace java programs. The probes have zero overhead when
+the tapset to trace Java programs. The probes have zero overhead when
 not used and can safely be compiled in even when not used at runtime.
 
 Support for Additional VMs
--- a/acinclude.m4	Wed Aug 10 05:13:49 2016 +0100
+++ b/acinclude.m4	Mon Aug 15 17:07:31 2016 +0100
@@ -151,7 +151,7 @@
   ECJ_DEFAULT=/usr/bin/ecj
   AC_MSG_CHECKING([if an ecj binary was specified])
   AC_ARG_WITH([ecj],
-	      [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)],
+	      [AS_HELP_STRING([--with-ecj[[=PATH]]],the path to an ecj binary)],
   [
     if test "x${withval}" = "xyes"; then
       ECJ=no
@@ -194,7 +194,7 @@
   JAVAC_DEFAULT=${SYSTEM_JDK_DIR}/bin/javac
   AC_MSG_CHECKING([if a javac binary was specified])
   AC_ARG_WITH([javac],
-	      [AS_HELP_STRING(--with-javac,bytecode compilation with javac)],
+	      [AS_HELP_STRING([--with-javac[[=PATH]]],the path to a javac binary)],
   [
     if test "x${withval}" = "xyes"; then
       JAVAC=no
@@ -227,7 +227,7 @@
   JAVA_DEFAULT=${SYSTEM_JDK_DIR}/bin/java
   AC_MSG_CHECKING([if a java binary was specified])
   AC_ARG_WITH([java],
-              [AS_HELP_STRING(--with-java,specify location of the 1.5 java vm)],
+              [AS_HELP_STRING([--with-java[[=PATH]]],specify location of a 1.5 Java VM)],
   [
     if test "x${withval}" = "xyes"; then
       JAVA=no
@@ -280,8 +280,8 @@
 [
   DEFAULT_SRC_DIR=${abs_top_builddir}/openjdk
   AC_MSG_CHECKING([for an OpenJDK source directory])
-  AC_ARG_WITH([openjdk-src-dir],
-              [AS_HELP_STRING(--with-openjdk-src-dir=DIR,specify the location of the openjdk sources)],
+  AC_ARG_WITH([openjdk-src-dir=DIR],
+              [AS_HELP_STRING([--with-openjdk-src-dir=PATH],specify the location of the OpenJDK source tree)],
   [
     OPENJDK_SRC_DIR=${withval}
     with_external_src_dir=true
@@ -334,7 +334,7 @@
 [
   AC_MSG_CHECKING([for an ecj JAR file])
   AC_ARG_WITH([ecj-jar],
-              [AS_HELP_STRING(--with-ecj-jar,specify location of the ECJ jar)],
+              [AS_HELP_STRING([--with-ecj-jar[[=PATH]]],specify location of an ECJ JAR file)],
   [
     if test -f "${withval}"; then
       ECJ_JAR="${withval}"
@@ -381,7 +381,7 @@
   JAVAH_DEFAULT=${SYSTEM_JDK_DIR}/bin/javah
   AC_MSG_CHECKING([if a javah binary was specified])
   AC_ARG_WITH([javah],
-              [AS_HELP_STRING(--with-javah,specify location of the Java header generator)],
+              [AS_HELP_STRING([--with-javah[[=PATH]]],specify location of the Java header generator)],
   [
     if test "x${withval}" = "xyes"; then
       JAVAH=no
@@ -419,7 +419,7 @@
   JAR_DEFAULT=${SYSTEM_JDK_DIR}/bin/jar
   AC_MSG_CHECKING([if a jar binary was specified])
   AC_ARG_WITH([jar],
-              [AS_HELP_STRING(--with-jar,specify location of Java archive tool (jar))],
+              [AS_HELP_STRING([--with-jar[[=PATH]]],specify location of Java archive tool (jar))],
   [
     if test "x${withval}" = "xyes"; then
       JAR=no
@@ -490,7 +490,7 @@
   RMIC_DEFAULT=${SYSTEM_JDK_DIR}/bin/rmic
   AC_MSG_CHECKING([if a rmic binary was specified])
   AC_ARG_WITH([rmic],
-              [AS_HELP_STRING(--with-rmic,specify location of the RMI compiler)],
+              [AS_HELP_STRING([--with-rmic[[=PATH]]],specify location of the RMI compiler)],
   [
     if test "x${withval}" = "xyes"; then
       RMIC=no
@@ -528,7 +528,7 @@
   NATIVE2ASCII_DEFAULT=${SYSTEM_JDK_DIR}/bin/native2ascii
   AC_MSG_CHECKING([if a native2ascii binary was specified])
   AC_ARG_WITH([native2ascii],
-              [AS_HELP_STRING(--with-native2ascii,specify location of the native2ascii converter)],
+              [AS_HELP_STRING([--with-native2ascii[[=PATH]]],specify location of the native2ascii converter)],
   [
     if test "x${withval}" = "xyes"; then
       NATIVE2ASCII=no
@@ -560,51 +560,11 @@
   AC_SUBST([NATIVE2ASCII])
 ])
 
-AC_DEFUN([IT_FIND_ENDORSED_JARS],
-[
-  AC_MSG_CHECKING(for endorsed jars dir)
-  AC_ARG_WITH([endorsed-dir],
-              [AS_HELP_STRING(--with-endorsed-dir,specify directory of endorsed jars (xalan-j2.jar, xalan-j2-serializer.jar, xerces-j2.jar))],
-  [
-    if test "x${withval}" = "xno"; then
-        ENDORSED_JARS="${withval}"
-        AC_MSG_RESULT(${withval})
-    else if test -f "${withval}/xalan-j2.jar"; then
-      if test -f "${withval}/xalan-j2-serializer.jar"; then
-        if test -f "${withval}/xerces-j2.jar"; then
-          ENDORSED_JARS="${withval}"
-          AC_MSG_RESULT(${withval})
-        fi
-      fi
-    fi
-  ],
-  [
-    ENDORSED_JARS=
-  ])
-  if test -z "${ENDORSED_JARS}"; then
-    if test -f "/usr/share/java/xalan-j2.jar"; then
-      if test -f "/usr/share/java/xalan-j2-serializer.jar"; then
-        if test -f "/usr/share/java/xerces-j2.jar"; then
-          ENDORSED_JARS="/usr/share/java/xalan-j2.jar /usr/share/java/xalan-j2-serializer.jar /usr/share/java/xerces-j2.jar"
-          AC_MSG_RESULT(/usr/share/java)
-        fi
-      fi
-    fi
-    if test -z "${ENDORSED_JARS}"; then
-      AC_MSG_RESULT(missing)
-    fi
-  fi
-  if test -z "${ENDORSED_JARS}"; then
-    AC_MSG_ERROR("A directory containing required jars (xalan-j2.jar, xalan-j2-serializer.jar, xerces-j2.jar) was not found.")
-  fi
-  AC_SUBST(ENDORSED_JARS)
-])
-
 AC_DEFUN([IT_WITH_OPENJDK_SRC_ZIP],
 [
   AC_MSG_CHECKING([for an OpenJDK source zip])
   AC_ARG_WITH([openjdk-src-zip],
-              [AS_HELP_STRING(--with-openjdk-src-zip,specify the location of the openjdk source zip)],
+              [AS_HELP_STRING([--with-openjdk-src-zip[[=PATH]]],specify the location of the OpenJDK source zip)],
   [
     ALT_OPENJDK_SRC_ZIP=${withval}
     if test "x${ALT_OPENJDK_SRC_ZIP}" = "xno"; then
@@ -625,7 +585,7 @@
 [
   AC_MSG_CHECKING([for an alternate jar command])
   AC_ARG_WITH([alt-jar],
-              [AS_HELP_STRING(--with-alt-jar, specify the location of an alternate jar binary to use for building)],
+              [AS_HELP_STRING(--with-alt-jar=PATH, specify the location of an alternate jar binary to use for building)],
   [
     ALT_JAR_CMD=${withval}
     AM_CONDITIONAL(USE_ALT_JAR, test x = x)
@@ -642,7 +602,7 @@
 [
   AC_MSG_CHECKING([whether to include Javascript support via Rhino])
   AC_ARG_WITH([rhino],
-              [AS_HELP_STRING(--with-rhino,specify location of the rhino jar)],
+              [AS_HELP_STRING([--with-rhino[[=PATH]]],specify location of the rhino jar)],
   [
     case "${withval}" in
       yes)
@@ -890,8 +850,8 @@
 [
   AC_MSG_CHECKING([for a CACAO home directory])
   AC_ARG_WITH([cacao-home],
-              [AS_HELP_STRING([--with-cacao-home],
-                              [CACAO home directory [[default=/usr/local/cacao]]])],
+              [AS_HELP_STRING([--with-cacao-home[[=PATH]]],
+                              [CACAO home directory [[PATH=/usr/local/cacao]]])],
               [
                 case "${withval}" in
                 yes)
@@ -915,7 +875,7 @@
 [
   AC_MSG_CHECKING([for a CACAO source zip])
   AC_ARG_WITH([cacao-src-zip],
-              [AS_HELP_STRING(--with-cacao-src-zip,specify the location of the CACAO source zip)],
+              [AS_HELP_STRING(--with-cacao-src-zip=PATH,specify the location of the CACAO source zip)],
   [
     ALT_CACAO_SRC_ZIP=${withval}
     if test "x${ALT_CACAO_SRC_ZIP}" = "xno"; then
@@ -953,7 +913,7 @@
 [
   AC_MSG_CHECKING([whether to compile ecj natively])
   AC_ARG_WITH([gcj],
-	      [AS_HELP_STRING(--with-gcj,location of gcj for natively compiling ecj)],
+	      [AS_HELP_STRING([--with-gcj[[=PATH]]],location of gcj for natively compiling ecj)],
   [
     GCJ="${withval}"
   ],
@@ -974,7 +934,7 @@
   DEFAULT_BUILD=${ORIGINAL_BUILD}
   AC_MSG_CHECKING([which HotSpot build to use])
   AC_ARG_WITH([hotspot-build],
-	      [AS_HELP_STRING(--with-hotspot-build,the HotSpot build to use (see hotspot.map))],
+	      [AS_HELP_STRING(--with-hotspot-build=BUILD,the HotSpot build to use [[BUILD=default]])],
   [
     HSBUILD="${withval}"
   ],
@@ -991,7 +951,7 @@
 [
   AC_MSG_CHECKING([for a HotSpot source zip])
   AC_ARG_WITH([hotspot-src-zip],
-              [AS_HELP_STRING(--with-hotspot-src-zip,specify the location of the hotspot source zip)],
+              [AS_HELP_STRING(--with-hotspot-src-zip=PATH,specify the location of the HotSpot source zip)],
   [
     ALT_HOTSPOT_SRC_ZIP=${withval}
     if test "x${ALT_HOTSPOT_SRC_ZIP}" = "xno"; then
@@ -1034,7 +994,7 @@
 [
   AC_MSG_CHECKING([which Mercurial revision to use])
   AC_ARG_WITH([hg-revision],
-	      [AS_HELP_STRING(--with-hg-revision,the Mercurial revision to use)],
+	      [AS_HELP_STRING(--with-hg-revision=REV,the Mercurial revision to use [[REV=tip]])],
   [
     HGREV="${withval}"
     AC_MSG_RESULT([${HGREV}])
@@ -1074,9 +1034,8 @@
   AC_REQUIRE([IT_CHECK_IF_BOOTSTRAPPING])
   AC_MSG_CHECKING([for a JDK home directory])
   AC_ARG_WITH([jdk-home],
-             [AS_HELP_STRING([--with-jdk-home],
-                              [jdk home directory \
-                               (default is first predefined JDK found)])],
+	      [AS_HELP_STRING([--with-jdk-home[[=PATH]]],
+                              [jdk home directory (default is first predefined JDK found)])],
              [
                 if test "x${withval}" = xyes
                 then
@@ -1125,7 +1084,7 @@
   DEFAULT="/usr/share/javazi"
   AC_MSG_CHECKING([which Java timezone data directory to use])
   AC_ARG_WITH([tzdata-dir],
-	      [AS_HELP_STRING(--with-tzdata-dir,set the Java timezone data directory [[default=/usr/share/javazi]])],
+	      [AS_HELP_STRING([--with-tzdata-dir[[=DIR]]],set the Java timezone data directory [[DIR=/usr/share/javazi]])],
   [
     if test "x${withval}" = x || test "x${withval}" = xyes; then
       TZDATA_DIR_SET=yes
@@ -1155,7 +1114,7 @@
 [
 AC_MSG_CHECKING([for additional virtual machines to build])
 AC_ARG_WITH(additional-vms,
-            AC_HELP_STRING([--with-additional-vms=vm-list],
+            AC_HELP_STRING([--with-additional-vms=VM-LIST],
 	    [build additional virtual machines. Valid value is a comma separated string with the backend names `jamvm', `cacao', `zero' and `shark'.]),
 [
 if test "x${withval}" != x
@@ -1352,6 +1311,50 @@
   AC_PROVIDE([$0])dnl
 ])
 
+AC_DEFUN_ONCE([IT_ENABLE_NATIVE_DEBUGINFO],
+[
+  AC_MSG_CHECKING([whether to build native code with debugging information])
+  AC_ARG_ENABLE([native-debuginfo],
+                [AS_HELP_STRING(--enable-native-debuginfo,build with native code debuginfo [[default=yes]])],
+  [
+    case "${enableval}" in
+      yes)
+        enable_native_debuginfo=yes
+        ;;
+      *)
+        enable_native_debuginfo=no
+        ;;
+    esac
+  ],
+  [
+    enable_native_debuginfo=yes
+  ])
+  AC_MSG_RESULT([$enable_native_debuginfo])
+  AM_CONDITIONAL([ENABLE_NATIVE_DEBUGINFO], test x"${enable_native_debuginfo}" = "xyes")
+])
+
+AC_DEFUN_ONCE([IT_ENABLE_JAVA_DEBUGINFO],
+[
+  AC_MSG_CHECKING([whether to build Java bytecode with debugging information])
+  AC_ARG_ENABLE([java-debuginfo],
+                [AS_HELP_STRING(--enable-java-debuginfo,build with Java bytecode debuginfo [[default=yes]])],
+  [
+    case "${enableval}" in
+      yes)
+        enable_java_debuginfo=yes
+        ;;
+      *)
+        enable_java_debuginfo=no
+        ;;
+    esac
+  ],
+  [
+    enable_java_debuginfo=yes
+  ])
+  AC_MSG_RESULT([$enable_java_debuginfo])
+  AM_CONDITIONAL([ENABLE_JAVA_DEBUGINFO], test x"${enable_java_debuginfo}" = "xyes")
+])
+
 AC_DEFUN_ONCE([IT_HAS_NATIVE_HOTSPOT_PORT],
 [
   AC_MSG_CHECKING([if a native HotSpot port is available for this architecture])
@@ -1450,7 +1453,7 @@
 proc_default=$(($it_cv_proc + 1))
 AC_MSG_CHECKING([how many parallel build jobs to execute])
 AC_ARG_WITH([parallel-jobs],
-	[AS_HELP_STRING([--with-parallel-jobs],
+	[AS_HELP_STRING([--with-parallel-jobs[[=NUM]]],
 			[build IcedTea using the specified number of parallel jobs])],
 	[
           if test "x${withval}" = xyes; then
@@ -1516,7 +1519,7 @@
 [
   AC_MSG_CHECKING([whether to disable the execution of the langtools JTReg tests])
   AC_ARG_ENABLE([langtools-tests],
-                [AS_HELP_STRING(--disable-tests,do not run the langtools JTReg tests via make check-langtools [[default=no]])],
+                [AS_HELP_STRING(--disable-langtools-tests,do not run the langtools JTReg tests via make check-langtools [[default=no]])],
   [
     case "${enableval}" in
       no)
@@ -1538,7 +1541,7 @@
 [
   AC_MSG_CHECKING([whether to disable the execution of the JDK JTReg tests])
   AC_ARG_ENABLE([jdk-tests],
-                [AS_HELP_STRING(--disable-tests,do not run the JDK JTReg tests via make check-jdk [[default=no]])],
+                [AS_HELP_STRING(--disable-jdk-tests,do not run the JDK JTReg tests via make check-jdk [[default=no]])],
   [
     case "${enableval}" in
       no)
@@ -2239,10 +2242,7 @@
       AC_MSG_WARN("No PaX utility found.")
     fi
   fi
-  if test -z "${PAX_COMMAND}"; then
-    PAX_COMMAND="not specified"
-    PAX_COMMAND_ARGS="not specified"
-  else
+  if test -n "${PAX_COMMAND}"; then
     AC_MSG_CHECKING([which options to pass to ${PAX_COMMAND}])
     case "${host_cpu}" in
       i?86)
@@ -2254,7 +2254,7 @@
     esac
     AC_MSG_RESULT(${PAX_COMMAND_ARGS})
   fi
-  AM_CONDITIONAL(WITH_PAX, test "x${PAX_COMMAND}" != "xnot specified")
+  AM_CONDITIONAL(WITH_PAX, test "x${PAX_COMMAND}" != "x")
   AC_SUBST(PAX_COMMAND)
   AC_SUBST(PAX_COMMAND_ARGS)
 ])
@@ -2456,3 +2456,42 @@
   fi
   AC_SUBST(fontdir)
 ])
+
+AC_DEFUN_ONCE([IT_DISABLE_SYSTEMTAP_TESTS],
+[
+  AC_MSG_CHECKING([whether to disable the execution of the SystemTap tests])
+  AC_ARG_ENABLE([systemtap-tests],
+                [AS_HELP_STRING(--disable-systemtap-tests,do not run the SystemTap tests via make check [[default=no]])],
+  [
+    case "${enableval}" in
+      no)
+        disable_systemtap_tests=yes
+        ;;
+      *)
+        disable_systemtap_tests=no
+        ;;
+    esac
+  ],
+  [
+    disable_systemtap_tests=no
+  ])
+  AC_MSG_RESULT([$disable_systemtap_tests])
+  AM_CONDITIONAL([DISABLE_SYSTEMTAP_TESTS], test x"${disable_systemtap_tests}" = "xyes")
+])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_MIME_TYPES],
+[
+  MIME_TYPES_FILE="/etc/mime.types"
+  AC_MSG_CHECKING([for ${MIME_TYPES_FILE}])
+  if test -f ${MIME_TYPES_FILE}; then
+     mime_types_file_found=yes
+  else
+     mime_types_file_found=no
+  fi
+  AC_MSG_RESULT([$mime_types_file_found])
+  if test "x${mime_types_file_found}" = "xno"; then
+    AC_MSG_WARN([No system MIME types file found.])
+  fi
+  AC_SUBST([MIME_TYPES_FILE])
+  AM_CONDITIONAL(MIME_TYPES_FILE_FOUND, test "x${mime_types_file_found}" = "xyes")
+])
--- a/configure.ac	Wed Aug 10 05:13:49 2016 +0100
+++ b/configure.ac	Mon Aug 15 17:07:31 2016 +0100
@@ -50,6 +50,8 @@
 IT_OBTAIN_HG_REVISIONS
 AC_PATH_TOOL([LSB_RELEASE],[lsb_release])
 IT_WITH_GCJ
+IT_CHECK_FOR_MIME_TYPES
+
 IT_WITH_HOTSPOT_BUILD
 AC_PATH_TOOL([LINUX32],[linux32])
 IT_CHECK_GCC_VERSION
@@ -61,6 +63,9 @@
 IT_DISABLE_HOTSPOT_TESTS
 IT_DISABLE_LANGTOOLS_TESTS
 IT_DISABLE_JDK_TESTS
+IT_DISABLE_SYSTEMTAP_TESTS
+IT_ENABLE_NATIVE_DEBUGINFO
+IT_ENABLE_JAVA_DEBUGINFO
 
 IT_WITH_FONTS_DIR
 AC_CONFIG_FILES([linux.fontconfig.Gentoo.properties])
--- a/patches/ecj/icedtea.patch	Wed Aug 10 05:13:49 2016 +0100
+++ b/patches/ecj/icedtea.patch	Mon Aug 15 17:07:31 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	Mon Aug 15 17:07:31 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	Mon Aug 15 17:07:31 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	Mon Aug 15 17:07:31 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	Mon Aug 15 17:07:31 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	Mon Aug 15 17:07:31 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;
+ 
+ /*
--- a/pax-mark-vm.in	Wed Aug 10 05:13:49 2016 +0100
+++ b/pax-mark-vm.in	Mon Aug 15 17:07:31 2016 +0100
@@ -1,13 +1,25 @@
 #!/bin/sh
 
+JDK=${1}
+FAIL_ON_ERROR=${2}
+
 # Taken from Gentoo's pax-utils.eclass
 list_paxables() {
-       file "$@" 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//'
+	file "$@" 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//'
 }
 
-if test "@PAX_COMMAND@" != "not specified"; then
-       for paxable in `list_paxables "${1}"/bin/* "${1}"/jre/bin/*`; do
-               echo "PaX mark @PAX_COMMAND_ARGS@ ${paxable}"
-               @PAX_COMMAND@ @PAX_COMMAND_ARGS@ "${paxable}"
-       done
+if test "x@PAX_COMMAND@" != "x"; then
+    if @PAX_COMMAND@ -m "${JDK}"/bin/java; then
+	for paxable in `list_paxables "${JDK}"/bin/* "${JDK}"/jre/bin/*`; do
+		echo "PaX mark @PAX_COMMAND_ARGS@ ${paxable}"
+		@PAX_COMMAND@ @PAX_COMMAND_ARGS@ "${paxable}"
+	done
+    else
+	if test "x${FAIL_ON_ERROR}" = "xtrue"; then
+	    echo "ERROR: Could not apply PaX markings to files in ${JDK}";
+	    exit 1;
+	else
+	    echo "WARNING: Could not apply PaX markings to files in ${JDK}";
+	fi
+    fi
 fi
--- a/tapset/hotspot.stp.in	Wed Aug 10 05:13:49 2016 +0100
+++ b/tapset/hotspot.stp.in	Mon Aug 15 17:07:31 2016 +0100
@@ -141,7 +141,8 @@
    Triggers at the end of the virtual machine initialization.
    Has no arguments.
  */
-probe hotspot.vm_init_end =
+probe hotspot_vm_init_end = hotspot.vm_init_end6 {}
+probe hotspot.vm_init_end6 =
   process("@ABS_CLIENT_LIBJVM_SO@").mark("vm__init__end"),
   process("@ABS_SERVER_LIBJVM_SO@").mark("vm__init__end")
 {
--- a/tapset/jstack.stp.in	Wed Aug 10 05:13:49 2016 +0100
+++ b/tapset/jstack.stp.in	Mon Aug 15 17:07:31 2016 +0100
@@ -45,27 +45,33 @@
  semantic error: failed to retrieve location attribute for local
 */
 
-global Universe_methodKlassObj;
-global Universe_collectedHeap;
-global HeapWordSize;
-global CodeCache_heap;
-global NarrowOopStruct;
+/* Resolve multiple installed java versions conflict. */
+@define _private %( %( systemtap_v >= "3.0" %? private %) %)
+@define _check_match %(
+  %( systemtap_v >= "3.0" %? if (pp() !~ "@prefix@") next %)
+%)
+
+@_private global Universe_methodKlassObj;
+@_private global Universe_collectedHeap;
+@_private global HeapWordSize;
+@_private global CodeCache_heap;
+@_private global NarrowOopStruct;
 
-global sp_register;
-global fp_register;
-global pc_register;
-global ptr_size;
-global ptr_mask;
+@_private global sp_register;
+@_private global fp_register;
+@_private global pc_register;
+@_private global ptr_size;
+@_private global ptr_mask;
 
-global constantPoolOopDesc_size;
-global HeapBlock_Header_size;
-global oopDesc_size;
+@_private global constantPoolOopDesc_size;
+@_private global HeapBlock_Header_size;
+@_private global oopDesc_size;
 
-global vm_inited;
+@_private global vm_inited;
 
 /* We need to collect some global symbol addresses that cannot be resolved
    in a bare function and vm_init_end seems a good place to use. */
-probe hotspot.vm_init_end
+probe hotspot.vm_init_end6
 {
   // The parent/type oop for a methodOop.
   Universe_methodKlassObj[pid()] = %( systemtap_v >= "1.8"
@@ -157,6 +163,8 @@
 
 function jstack:string()
 {
+  @_check_match
+
   // java backtraces can be a lot bigger, but we risk going over MAXACTION.
   // 32 frames only gives us ~32 actions per frame (with MAXACTION == 1024).
   max_depth = 32;
@@ -166,6 +174,8 @@
 
 function jstack_n:string(max_depth:long)
 {
+  @_check_match
+
   // Whether to log the method signatures.
   log_sig = 0;
 
@@ -180,6 +190,8 @@
 
 function print_jstack()
 {
+  @_check_match
+
   // java backtraces can be a lot bigger, but we risk going over MAXACTION.
   // 32 frames only gives us ~32 actions per frame (with MAXACTION == 1024).
   max_depth = 32;
@@ -189,6 +201,8 @@
 
 function print_jstack_n:string(max_depth:long)
 {
+  @_check_match
+
   // Whether to log the method signatures.
   log_sig = 0;
 
@@ -203,6 +217,8 @@
 
 function jstack_full:string()
 {
+  @_check_match
+
   // java backtraces can be a lot bigger, but we risk going over MAXACTION.
   // 32 frames only gives us ~32 actions per frame (with MAXACTION == 1024).
   max_depth = 32;
@@ -212,6 +228,8 @@
 
 function jstack_full_n:string(max_depth:long)
 {
+  @_check_match
+
   // Whether to log the method signatures.
   log_sig = 1;
 
@@ -226,6 +244,8 @@
 
 function print_jstack_full()
 {
+  @_check_match
+
   // java backtraces can be a lot bigger, but we risk going over MAXACTION.
   // 32 frames only gives us ~32 actions per frame (with MAXACTION == 1024).
   max_depth = 32;
@@ -235,6 +255,8 @@
 
 function print_jstack_full_n:string(max_depth:long)
 {
+  @_check_match
+
   // Whether to log the method signatures.
   log_sig = 1;
 
@@ -250,6 +272,8 @@
 function jstack_call:string(max_depth:long, log_sig:long, log_native:long,
                             print_frames:long)
 {
+  @_check_match
+
   if (! vm_inited[pid()])
     {
       frame = "<vm-not-inited>";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/RH1195203.java	Mon Aug 15 17:07:31 2016 +0100
@@ -0,0 +1,32 @@
+/* RH1195203 -- Check correct recognition of mime types.
+   Copyright (C) 2015 Red Hat, Inc.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+import javax.activation.MimetypesFileTypeMap;
+
+public class RH1195203
+{
+    public static void main(String[] args)
+    {
+        if (args.length == 0)
+        {
+            System.err.println("No file specified.");
+            System.exit(-1);
+        }
+
+        System.out.println(MimetypesFileTypeMap.getDefaultFileTypeMap().getContentType(args[0]));
+    }
+}