# HG changeset patch # User Andrew John Hughes # Date 1471277251 -3600 # Node ID 94ea67d446bce7ca5a26c9a83f59b4762847f282 # Parent ef5c11436c4947856b19f4b38084470031c4152a# Parent 6ea26782250d82e1d25c9dc82da185ab799c6214 Merge diff -r ef5c11436c49 -r 94ea67d446bc AUTHORS --- 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 Francis Kung Denis Lila +Felix Lu DJ Lucas Omair Majid Casey Marshall diff -r ef5c11436c49 -r 94ea67d446bc ChangeLog --- 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 + + 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 + + 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 + + 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 + + PR3130: Avoid giving PAX_COMMAND a value if + no PaX utility is available + * NEWS: Updated. + +2014-02-21 Andrew John Hughes + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + PR2800: Files are missing from resources.jar + * Makefile.am: + (BUILD_BOOT_JRE_ARCH_DIR): Added. + +2016-03-04 Andrew John Hughes + + 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 + + PR3139: Update documentation + * NEWS: Updated. + * README: Remove NIO2 backport information + as this is long gone. + +2010-07-22 Andrew John Hughes + + 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 + + PR3092: SystemTap is heavily confused + by multiple JDKs + * AUTHORS: Added Felix Lu. + * NEWS: Updated. + +2016-07-13 Felix Lu + + 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 + + * 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 * patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch: diff -r ef5c11436c49 -r 94ea67d446bc INSTALL --- 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/-/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/-/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/-/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: diff -r ef5c11436c49 -r 94ea67d446bc Makefile.am --- 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 "" > $(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 diff -r ef5c11436c49 -r 94ea67d446bc NEWS --- 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): diff -r ef5c11436c49 -r 94ea67d446bc README --- 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 diff -r ef5c11436c49 -r 94ea67d446bc acinclude.m4 --- 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") +]) diff -r ef5c11436c49 -r 94ea67d446bc configure.ac --- 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]) diff -r ef5c11436c49 -r 94ea67d446bc patches/ecj/icedtea.patch --- 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 @@ 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 ef5c11436c49 -r 94ea67d446bc patches/openjdk/2178143-pr2959.patch --- /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(); diff -r ef5c11436c49 -r 94ea67d446bc patches/openjdk/6260348-pr3068.patch --- /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 */ diff -r ef5c11436c49 -r 94ea67d446bc patches/openjdk/6961123-pr2975.patch --- /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(); + } diff -r ef5c11436c49 -r 94ea67d446bc patches/pr2800-missing_resources.patch --- /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 diff -r ef5c11436c49 -r 94ea67d446bc 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 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; + + /* diff -r ef5c11436c49 -r 94ea67d446bc pax-mark-vm.in --- 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 diff -r ef5c11436c49 -r 94ea67d446bc tapset/hotspot.stp.in --- 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") { diff -r ef5c11436c49 -r 94ea67d446bc tapset/jstack.stp.in --- 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 = ""; diff -r ef5c11436c49 -r 94ea67d446bc test/RH1195203.java --- /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 . +*/ + +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])); + } +}