From bac3b9acee5110390d15d38dacdb1622e31b2238 Mon Sep 17 00:00:00 2001 From: Jens Rehsack Date: Tue, 8 Dec 2015 14:52:51 +0100 Subject: openjdk-8: add recipes for openjdk-8 and openjre-8 This adds openjdk-8 for native and target builds and allows a stripped openjre-8 being built as well instead of trying to cherry-pick jre components from jdk-image. The recipes allow building openjdk-8 with or without: * x11 * cups * alsa/pulseaudio and let packager enable unlimited-crypto, if desired. To support certificate based java libraries, cacerts is created based on ca-certificates from OE-core. Since there can be only one PROVIDES for virtual/java-native and virtual/javac-native, move the provides to openjdk-8-native (I think everyone agrees it's a better choice than ecj-bootstrap-native). Plus: Applying a fix from openjdk-9 repository which fixes build issues using gcc5 Signed-off-by: Jens Rehsack Signed-off-by: Maxin B. John --- README | 13 +- recipes-core/cacao/cacao_1.6.1.bb | 2 +- recipes-core/ecj/ecj-bootstrap-native.bb | 2 - recipes-core/openjdk/openjdk-8-common.inc | 231 ++ recipes-core/openjdk/openjdk-8-cross.inc | 200 ++ recipes-core/openjdk/openjdk-8-native.inc | 82 + recipes-core/openjdk/openjdk-8-native_72b05.bb | 28 + recipes-core/openjdk/openjdk-8-release-72b05.inc | 87 + recipes-core/openjdk/openjdk-8_72b05.bb | 36 + recipes-core/openjdk/openjre-8_72b05.bb | 30 + recipes-core/openjdk/patches-openjdk-8/LICENSE | 347 +++ .../dont-expect-fqpn-for-make.patch | 18 + .../filter-aclocal-copy-too.patch | 11 + recipes-core/openjdk/patches-openjdk-8/jvm.cfg | 41 + .../openjdk8-find-compiler-fix-env-respect.patch | 140 + .../openjdk8-fix-shark-build.patch | 453 ++++ .../openjdk8-fix-shark-stdc++11.patch | 2730 ++++++++++++++++++++ .../openjdk8-no-genx11-in-headless.patch | 17 + .../openjdk8-no-unused-deps.patch | 94 + ...o-in-favour-of-openembedded-package-split.patch | 120 + .../openjdk8-restrict-to-staging-dir.patch | 11 + ..._than_returning_address_of_local_variable.patch | 23 + .../remove-shell-variables-from-autoheader.patch | 31 + 23 files changed, 4735 insertions(+), 12 deletions(-) create mode 100644 recipes-core/openjdk/openjdk-8-common.inc create mode 100644 recipes-core/openjdk/openjdk-8-cross.inc create mode 100644 recipes-core/openjdk/openjdk-8-native.inc create mode 100644 recipes-core/openjdk/openjdk-8-native_72b05.bb create mode 100644 recipes-core/openjdk/openjdk-8-release-72b05.inc create mode 100644 recipes-core/openjdk/openjdk-8_72b05.bb create mode 100644 recipes-core/openjdk/openjre-8_72b05.bb create mode 100644 recipes-core/openjdk/patches-openjdk-8/LICENSE create mode 100644 recipes-core/openjdk/patches-openjdk-8/dont-expect-fqpn-for-make.patch create mode 100644 recipes-core/openjdk/patches-openjdk-8/filter-aclocal-copy-too.patch create mode 100644 recipes-core/openjdk/patches-openjdk-8/jvm.cfg create mode 100644 recipes-core/openjdk/patches-openjdk-8/openjdk8-find-compiler-fix-env-respect.patch create mode 100644 recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-build.patch create mode 100644 recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-stdc++11.patch create mode 100644 recipes-core/openjdk/patches-openjdk-8/openjdk8-no-genx11-in-headless.patch create mode 100644 recipes-core/openjdk/patches-openjdk-8/openjdk8-no-unused-deps.patch create mode 100644 recipes-core/openjdk/patches-openjdk-8/openjdk8-prevent-debuginfo-in-favour-of-openembedded-package-split.patch create mode 100644 recipes-core/openjdk/patches-openjdk-8/openjdk8-restrict-to-staging-dir.patch create mode 100644 recipes-core/openjdk/patches-openjdk-8/openjdk8-use_builtin_frame_address_0_rather_than_returning_address_of_local_variable.patch create mode 100644 recipes-core/openjdk/patches-openjdk-8/remove-shell-variables-from-autoheader.patch diff --git a/README b/README index 3b95c13..7658c23 100644 --- a/README +++ b/README @@ -52,15 +52,10 @@ Main layer maintainers: Usage instructions ------------------ -You should define at least the following variables in a distro include file or local.conf +Since there is a clear bootstrap of the individual java-recipes, there is +nothing to configure in conf/local.conf nor your individual distro/$name.conf. -PREFERRED_PROVIDER_virtual/java-initial-native = "cacao-initial-native" - -PREFERRED_PROVIDER_virtual/java-native = "jamvm-native" -PREFERRED_PROVIDER_virtual/javac-native = "ecj-bootstrap-native" - -#Sometimes the following is needed: -PREFERRED_PROVIDER_openjdk-7-jre = "openjdk-7-jre" +Simply rely on openjdk-7-jre, openjdk-7, openjdk-8 or openjre-8. For conf/bblayers.conf you have to add @@ -70,7 +65,7 @@ BBLAYERS ?= " \ path_to_source/sources/meta-java \ " -Please note that libstdc++ static is needed on your host to compile icedtea6/7-native +Please note that libstdc++ static is needed on your host to compile icedtea7-native (install libstdc++-static on a Fedora). For debian-based distributions you need the libstdc++6-$compilerversion-dev package. diff --git a/recipes-core/cacao/cacao_1.6.1.bb b/recipes-core/cacao/cacao_1.6.1.bb index a8c1f19..9ea0f36 100644 --- a/recipes-core/cacao/cacao_1.6.1.bb +++ b/recipes-core/cacao/cacao_1.6.1.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" SECTION = "interpreters" DEPENDS_class-native = "zlib-native libtool-native ecj-initial-native fastjar-native classpath-native bdwgc-native" -PROVIDES_class-native = "virtual/java-native" +#PROVIDES_class-native = "virtual/java-native" DEPENDS_class-target = " virtual/javac-native " diff --git a/recipes-core/ecj/ecj-bootstrap-native.bb b/recipes-core/ecj/ecj-bootstrap-native.bb index a4a1c17..28414c2 100644 --- a/recipes-core/ecj/ecj-bootstrap-native.bb +++ b/recipes-core/ecj/ecj-bootstrap-native.bb @@ -14,8 +14,6 @@ PR = "r1" DEPENDS = "libecj-bootstrap-native cacao-native" -PROVIDES = "virtual/javac-native" - SRC_URI = "file://ecj.in" S = "${WORKDIR}" diff --git a/recipes-core/openjdk/openjdk-8-common.inc b/recipes-core/openjdk/openjdk-8-common.inc new file mode 100644 index 0000000..ad35488 --- /dev/null +++ b/recipes-core/openjdk/openjdk-8-common.inc @@ -0,0 +1,231 @@ +DESCRIPTION = "Java runtime based upon the OpenJDK Project" +HOMEPAGE = "http://http://openjdk.java.net/" +LICENSE = "GPL-2.0-with-classpath-exception" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=7b4baeedfe2d40cb03536573bc2c89b1" + +inherit java autotools gettext qemu pkgconfig + +AUTOTOOLS_SCRIPT_PATH = "${S}/common/autoconf/" +export AUTOCONF_DIR="${AUTOTOOLS_SCRIPT_PATH}" + +FILESPATH =. "${FILE_DIRNAME}/patches-openjdk-8:" + +# for weird openjdk-common.inc +S = "${WORKDIR}/${OPENJDK_HG_U}-${OPENJDK_CHANGESET}" + +SRC_URI = " \ + ${OPENJDK_URI} \ + ${HOTSPOT_URI} \ + ${CORBA_URI} \ + ${JAXP_URI} \ + ${JAXWS_URI} \ + ${JDK_URI} \ + ${LANGTOOLS_URI} \ + ${NASHORN_URI} \ + file://LICENSE \ + ${PATCHES_URI} \ +" + +do_unpack_extract_submodules () { + cd "${S}" + # tar --transform + tar xjf ${WORKDIR}/${CORBA_FILE} --transform "s,-${CORBA_CHANGESET},,g" + tar xjf ${WORKDIR}/${HOTSPOT_FILE} --transform "s,-${HOTSPOT_CHANGESET},,g" + tar xjf ${WORKDIR}/${JAXP_FILE} --transform "s,-${JAXP_CHANGESET},,g" + tar xjf ${WORKDIR}/${JAXWS_FILE} --transform "s,-${JAXWS_CHANGESET},,g" + tar xjf ${WORKDIR}/${JDK_FILE} --transform "s,-${JDK_CHANGESET},,g" + tar xjf ${WORKDIR}/${LANGTOOLS_FILE} --transform "s,-${LANGTOOLS_CHANGESET},,g" + tar xjf ${WORKDIR}/${NASHORN_FILE} --transform "s,-${NASHORN_CHANGESET},,g" +} + +def package_config_option_cleanup(d): + distro_x11 = bb.utils.contains('DISTRO_FEATURES', 'x11', True, False, d) + distro_alsa = bb.utils.contains('DISTRO_FEATURES', 'alsa', True, False, d) + distro_pulseaudio = bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', True, False, d) + + with_x11 = bb.utils.contains('PACKAGECONFIG', 'x11', True, False, d) + with_cups = bb.utils.contains('PACKAGECONFIG', 'cups', True, False, d) + with_alsa = bb.utils.contains('PACKAGECONFIG', 'alsa', True, False, d) + with_pulseaudio = bb.utils.contains('PACKAGECONFIG', 'pulseaudio', True, False, d) + + option_headless = bb.utils.contains('PACKAGECONFIG', 'headless', True, False, d) + option_headful = bb.utils.contains('PACKAGECONFIG', 'headful', True, False, d) + option_soundless = bb.utils.contains('PACKAGECONFIG', 'soundless', True, False, d) + + if option_headless and option_headful: + option_headless = False + + if option_headful and not with_x11: + with_x11 = True + + if option_headful and not with_cups: + with_cups = True + + if option_soundless and with_alsa: + with_alsa = False + + if option_soundless and with_pulseaudio: + with_pulseaudio = False + + if with_x11 and not distro_x11: + with_x11 = False + + if with_alsa and not distro_alsa: + with_alsa = False + + if with_pulseaudio and not distro_pulseaudio: + with_pulseaudio = False + + if option_headful and not with_x11: + option_headful = False + + if option_headful and not with_cups: + option_headful = False + + if not option_headless and not with_x11: + option_headless = True + + if not option_headless and not with_cups: + option_headless = True + + if not option_soundless and not with_alsa: + option_soundless = True + + if not option_soundless and not with_pulseaudio: + option_soundless = True + + options = {'make': [], 'cpp': [], 'env': [], 'configure': ["--disable-ccache"] } + + if option_headful: + options['configure'].append("--enable-headful") + + if option_headless: + options['configure'].append("--disable-headful") + options['make'].append("BUILD_HEADLESS_ONLY=1") + options['make'].append("BUILD_HEADLESS=true") + options['cpp'].append("-DHEADLESS=true") + + if option_soundless: + options['make'].append("BUILD_SOUNDLESS_ONLY=1") + + if not with_x11: + options['make'].append("X11_NOT_NEEDED=1") + options['env'].append("X11_NOT_NEEDED=yes") + + if not with_cups: + options['make'].append("CUPS_NOT_NEEDED=1") + options['env'].append("CUPS_NOT_NEEDED=yes") + + if not with_alsa: + options['make'].append("ALSA_NOT_NEEDED=1") + options['env'].append("ALSA_NOT_NEEDED=yes") + + if not with_pulseaudio: + options['make'].append("PULSE_NOT_NEEDED=1") + options['env'].append("PULSE_NOT_NEEDED=yes") + + options = [ ' '.join(options['make']), ' '.join(options['cpp']), ' '.join(options['env']), ' '.join(options['configure']) ] + + return options + +def jdk_make_options(d): + options = package_config_option_cleanup(d) + return options[0] + +def jdk_cpp_options(d): + options = package_config_option_cleanup(d) + if not options[1]: + return "" + + return " " + options[1] + +def jdk_environment_options(d): + options = package_config_option_cleanup(d) + return options[2] + +def jdk_configure_options(d): + options = package_config_option_cleanup(d) + return options[3] + +do_unpack[postfuncs] += "do_unpack_extract_submodules" + +POST_CONFIGURE_CLEAN_X11 = "${@base_contains('PACKAGECONFIG', 'x11', '', 'rm -f jdk/src/solaris/classes/sun/awt/X11/*.java', d)}" + +do_patch_openjdk8() { + olddir=`pwd` + cd "${S}" + ${POST_CONFIGURE_CLEAN_X11} + for OJ8P in ${WORKDIR}/openjdk8-*.patch; do + patch -p0 < ${OJ8P} + done +} + +do_patch[postfuncs] += "do_patch_openjdk8" + +do_configure_prepend() { + export ${@jdk_environment_options(d)} +} + +# OpenJDK supports parallel compilation but uses a plain number for this. +# In OE we have PARALLEL_MAKE which is the actual option passed to make, +# e.g. "-j 4". +OPENJDK8_PARALLEL_MAKE := "${PARALLEL_MAKE}" +PARALLEL_MAKE = "" +def get_jdk8_native_jobs(d): + import bb + + pm = bb.data.getVar('OPENJDK8_PARALLEL_MAKE', d, 1); + if not pm: + return "1" + + pm = pm.split("j"); + if (len(pm) == 2): + return pm[1].strip() + + # Whatever found in PARALLEL_MAKE was not suitable. + return "1" + +# A function that is needed in the Shark builds. +def get_llvm_configure_arch(d): + import bb; + + arch = bb.data.getVar('TRANSLATED_TARGET_ARCH', d, 1) + if arch == "x86-64" or arch == "i486" or arch == "i586" or arch == "i686": + arch = "x86" + elif arch == "arm": + arch = "arm" + elif arch == "mipsel" or arch == "mips": + arch = "mips" + elif arch == "powerpc" or arch == "powerpc64": + arch = "powerpc" + else: + bb.warn("%s does not support %s yet" % (bb.data.getVar('PN', d, 1), arch) ); + + return arch + +# Provides the target architecture to the configure script. +export LLVM_CONFIGURE_ARCH="${@get_llvm_configure_arch(d)}" + +# OpenJDK uses slightly different names for certain arches. We need to know +# this to create some files which are expected by the build. +def get_jdk_arch(d): + import bb + + jdk_arch = bb.data.getVar('TRANSLATED_TARGET_ARCH', d, 1) + if jdk_arch == "x86-64": + jdk_arch = "amd64" + elif jdk_arch == "powerpc": + jdk_arch = "ppc" + elif jdk_arch == "powerpc64": + jdk_arch = "ppc64" + elif (jdk_arch == "i486" or jdk_arch == "i586" or jdk_arch == "i686"): + jdk_arch = "i386" + + return jdk_arch + +JDK_ARCH = "${@get_jdk_arch(d)}" + +export DEBUG_BINARIES = "true" + +ALTERNATIVE_PRIORITY = "50" diff --git a/recipes-core/openjdk/openjdk-8-cross.inc b/recipes-core/openjdk/openjdk-8-cross.inc new file mode 100644 index 0000000..20ac194 --- /dev/null +++ b/recipes-core/openjdk/openjdk-8-cross.inc @@ -0,0 +1,200 @@ +JDKPN = "openjdk-8" +JREPN = "openjre-8" + +JDK_HOME = "${libdir_jvm}/${JDKPN}" +JRE_HOME = "${libdir_jvm}/${JREPN}" + +DEPENDS = "\ + openjdk-8-native zip-native ant-native libxslt \ + jpeg libpng krb5 libffi fontconfig freetype \ +" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[x11] = "--with-x,,libx11 xproto libxt libxext libxrender" +PACKAGECONFIG[cups] = "--with-cups,,cups" +PACKAGECONFIG[alsa] = "--with-alsa,,alsa-lib-native" + +PACKAGECONFIG[jce] = "--enable-unlimited-crypto,," + +PACKAGECONFIG[zip] = "--with-zlib=system,--with-zlib=bundled,zlib," +PACKAGECONFIG[gif] = "--with-giflib=system,--with-giflib=bundled,giflib," + +export WANT_LLVM_RELEASE = "3.5.2" +PACKAGECONFIG[zero] = "--with-jvm-variants=zero,,," +PACKAGECONFIG[shark] = "--with-jvm-variants=zeroshark,,llvm3.5," + +require openjdk-8-common.inc + +JAVA_HOME[unexport] = "1" + +SRC_URI_append = "\ + file://jvm.cfg \ +" + +# do not use --wth-extra-cflags, it breaks building demos for jdk +# maybe disabling demos is more reasonable than avoiding --wth-extra-cflags +# needs discussion +EXTRA_OECONF_append = "\ + --with-jobs=${@get_jdk8_native_jobs(d)} \ + \ + --with-sys-root=${STAGING_DIR} \ + --with-tools-dir=${STAGING_DIR_NATIVE} \ + --with-boot-jdk=${STAGING_LIBDIR_NATIVE}/jvm/openjdk-8-native \ + --with-cacerts-file=${STAGING_LIBDIR_NATIVE}/jvm/openjdk-8-native/jre/lib/security/cacerts \ + \ + --disable-precompiled-headers \ + --disable-zip-debug-info \ + \ + ${@jdk_configure_options(d)} \ +" + +do_configure_append() { + sed -i -e 's,POST_STRIP_CMD:=.*,POST_STRIP_CMD:=,g' ${B}/spec.gmk +} + +export MAKE_VERBOSE = "y" +export MFLAGS="${@jdk_make_options(d)} MAKE_VERBOSE=y QUIETLY= VERBOSE=-s LOG_LEVEL=trace STRIP_POLICY=no_strip" + +BUILD_LD="${BUILD_CCLD}" + +EXTRA_OEMAKE_append = '\ + OE_CFLAGS="${CFLAGS}" \ + OE_CPPFLAGS="${CPPFLAGS}" \ + OE_CXXFLAGS="${CXXFLAGS}" \ + OE_LDFLAGS="${LDFLAGS}" \ + ${@jdk_make_options(d)} \ + ALT_SDT_H="${STAGING_INCDIR}" \ + ALT_CUPS_HEADERS_PATH="${STAGING_INCDIR}" \ + ALT_FREETYPE_HEADERS_PATH="${STAGING_INCDIR}/freetype2" \ + ALT_FREETYPE_LIB_PATH="${STAGING_LIBDIR}" \ + STRIP_POLICY=no_strip \ + MAKE_VERBOSE=y VERBOSE=-s LOG_LEVEL=trace \ + QUIETLY= \ + images \ +' + +FILES_${JREPN}_append = "\ + ${JRE_HOME}/bin/[a-z]* \ + ${JRE_HOME}/lib/[a-z]* \ + ${JRE_HOME}/LICENSE \ + ${JRE_HOME}/release \ +" + +FILES_${JDKPN}_append = "\ + ${JDK_HOME}/bin/[a-z]* \ + ${JDK_HOME}/lib/[a-z]* \ + ${JDK_HOME}/jre/bin/[a-z]* \ + ${JDK_HOME}/jre/lib/[a-z]* \ + ${JDK_HOME}/LICENSE \ + ${JDK_HOME}/jre/LICENSE \ + ${JDK_HOME}/release \ +" + +FILES_${JDKPN}-dev_append = "\ + ${JDK_HOME}/include \ +" + +FILES_${JDKPN}-dbg_append = "\ + ${JDK_HOME}/bin/.debug/ \ + ${JDK_HOME}/lib/.debug/ \ + ${JDK_HOME}/lib/${JDK_ARCH}/.debug/ \ + ${JDK_HOME}/lib/${JDK_ARCH}/jli/.debug/ \ + ${JDK_HOME}/jre/bin/.debug/ \ + ${JDK_HOME}/jre/lib/.debug/ \ + ${JDK_HOME}/jre/lib/${JDK_ARCH}/.debug/ \ + ${JDK_HOME}/jre/lib/${JDK_ARCH}/jli/.debug/ \ + ${JDK_HOME}/jre/lib/${JDK_ARCH}/native_threads/.debug/ \ + ${JDK_HOME}/jre/lib/${JDK_ARCH}/server/.debug/ \ + ${JDK_HOME}/jre/lib/${JDK_ARCH}/headless/.debug/ \ + ${JDK_HOME}/jre/lib/${JDK_ARCH}/xawt/.debug/ \ + ${JDK_HOME}/jre/lib/${JDK_ARCH}/client/.debug/ \ +" + +FILES_${JREPN}-dbg_append = "\ + ${JRE_HOME}/bin/.debug/ \ + ${JRE_HOME}/lib/.debug/ \ + ${JRE_HOME}/lib/${JDK_ARCH}/.debug/ \ + ${JRE_HOME}/lib/${JDK_ARCH}/jli/.debug/ \ + ${JRE_HOME}/lib/${JDK_ARCH}/server/.debug/ \ +" + +FILES_${JDKPN}-demo = " ${JDK_HOME}/demo ${JDK_HOME}/sample " +RDEPENDS_${JDKPN}-demo = " ${JDKPN} " + +FILES_${JDKPN}-demo-dbg = "\ + ${JDK_HOME}/demo/jvmti/gctest/lib/.debug/ \ + ${JDK_HOME}/demo/jvmti/heapTracker/lib/.debug/ \ + ${JDK_HOME}/demo/jvmti/heapViewer/lib/.debug/ \ + ${JDK_HOME}/demo/jvmti/hprof/lib/.debug/ \ + ${JDK_HOME}/demo/jvmti/minst/lib/.debug/ \ + ${JDK_HOME}/demo/jvmti/mtrace/lib/.debug/ \ + ${JDK_HOME}/demo/jvmti/versionCheck/lib/.debug/ \ + ${JDK_HOME}/demo/jvmti/waiters/lib/.debug/ \ + ${JDK_HOME}/demo/jvmti/compiledMethodLoad/lib/.debug/ \ +" + +FILES_${JDKPN}-doc_append = "\ + ${JDK_HOME}/man \ + ${JDK_HOME}/ASSEMBLY_EXCEPTION \ + ${JDK_HOME}/THIRD_PARTY_README \ + ${JDK_HOME}/jre/ASSEMBLY_EXCEPTION \ + ${JDK_HOME}/jre/THIRD_PARTY_README \ +" +FILES_${JREPN}-doc_append = "\ + ${JRE_HOME}/man \ + ${JRE_HOME}/ASSEMBLY_EXCEPTION \ + ${JRE_HOME}/THIRD_PARTY_README \ +" + +FILES_${JDKPN}-source = " ${JDK_HOME}/src.zip " + +# Even though a vm is a hard dependency it is set as RRECOMMENDS so a single vm can get uninstalled: +# root@beaglebone:~/java# opkg remove openjdk-7-vm-shark +# No packages removed. +# Collected errors: +# * print_dependents_warning: Package openjdk-7-vm-shark is depended upon by packages: +# * print_dependents_warning: openjdk-7-java +# * print_dependents_warning: These might cease to work if package openjdk-7-vm-shark is removed. +#RRECOMMENDS_${JDKPN}-java = "java2-vm" + +# There is a symlink to a .so but this one is valid. +INSANE_SKIP_${JDKPN}-common = "dev-so" + +FILES_${JDKPN}-doc_append = "${JDK_HOME}/man" + +do_compile_append() { + find ${B}/images/j2sdk-image -name "*.jar" -print0 | \ + xargs -0 -n1 ${STAGING_LIBDIR_NATIVE}/jvm/openjdk-8-native/bin/pack200 --repack --effort=9 --segment-limit=-1 --modification-time=latest + find ${B}/images/j2re-image -name "*.jar" -print0 | \ + xargs -0 -n1 ${STAGING_LIBDIR_NATIVE}/jvm/openjdk-8-native/bin/pack200 --repack --effort=9 --segment-limit=-1 --modification-time=latest --strip-debug +} + +do_install_jdk() { + rm -rf ${D}${JDK_HOME} + mkdir -p ${D}${JDK_HOME} + cp -rp ${B}/images/j2sdk-image/* ${D}${JDK_HOME} + install -m644 ${WORKDIR}/jvm.cfg ${D}${JDK_HOME}/jre/lib/${JDK_ARCH}/ + find ${D}${JDK_HOME} -name "*.debuginfo" -print0 | xargs -0 rm +} + +do_install_jre() { + rm -rf ${D}${JRE_HOME} + mkdir -p ${D}${JRE_HOME} + cp -rp ${B}/images/j2re-image/* ${D}${JRE_HOME} + install -m644 ${WORKDIR}/jvm.cfg ${D}${JRE_HOME}/lib/${JDK_ARCH}/ + find ${D}${JRE_HOME} -name "*.debuginfo" -print0 | xargs -0 rm +} + +inherit update-alternatives + +ALTERNATIVE_${JDKPN} = "java" +ALTERNATIVE_TARGET_${JDKPN} = "${JDK_HOME}/bin/java" + +ALTERNATIVE_${JREPN} = "java" +ALTERNATIVE_TARGET_${JREPN} = "${JRE_HOME}/bin/java" + +ALTERNATIVE_${JDKPN}-jdk = "javac" +ALTERNATIVE_TARGET_${JDKPN}-jdk = "${JDK_HOME}/bin/javac" + +ALTERNATIVE_LINK_NAME[java] = "${bindir}/java" +ALTERNATIVE_LINK_NAME[javac] = "${bindir}/javac" diff --git a/recipes-core/openjdk/openjdk-8-native.inc b/recipes-core/openjdk/openjdk-8-native.inc new file mode 100644 index 0000000..7813ec2 --- /dev/null +++ b/recipes-core/openjdk/openjdk-8-native.inc @@ -0,0 +1,82 @@ +JDK_DIR = "openjdk-8-native" +DEPENDS = "\ + icedtea7-native ant-native \ + libxslt-native attr-native \ + giflib-native jpeg-native libpng-native \ + glib-2.0-native freetype-native fontconfig-native \ + zlib-native zip-native \ + unzip-native make-native \ + ca-certificates-native openssl-native \ +" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[x11] = "--with-x,,libx11-native xproto-native libxt-native libxext-native libxrender-native" +PACKAGECONFIG[cups] = "--with-cups,,cups" +PACKAGECONFIG[alsa] = "--with-alsa,,alsa-lib-native" +PACKAGECONFIG[jce] = "--enable-unlimited-crypto,," + +# do not use --wth-extra-cflags, it breaks building demos for jdk +# maybe disabling demos is more reasonable than avoiding --wth-extra-cflags +# needs discussion +EXTRA_OECONF_append = "\ + --with-jobs=${@get_jdk8_native_jobs(d)} \ + \ + --with-sys-root=${STAGING_DIR_NATIVE} \ + --with-tools-dir=${STAGING_DIR_NATIVE} \ + --with-boot-jdk=${STAGING_LIBDIR_NATIVE}/jvm/icedtea7-native \ + ${@jdk_configure_options(d)} \ +" +# --with-boot-jdk=${WORKDIR}/fake-jdk + +inherit native + +require openjdk-8-common.inc + +CFLAGS_append = "${@jdk_cpp_options(d)}" +CPPFLAGS_append = "${@jdk_cpp_options(d)}" +CXXFLAGS_append = "${@jdk_cpp_options(d)}" + +export MAKE_VERBOSE = "y" +export MFLAGS="${@jdk_make_options(d)} MAKE_VERBOSE=y QUIETLY= VERBOSE=-s LOG_LEVEL=trace" + +EXTRA_OEMAKE_append = ' \ + OE_CFLAGS="${CFLAGS}" \ + OE_CPPFLAGS="${CPPFLAGS}" \ + OE_CXXFLAGS="${CXXFLAGS}" \ + OE_LDFLAGS="${LDFLAGS}" \ + ${@jdk_make_options(d)} \ + MAKE_VERBOSE=y VERBOSE=-s LOG_LEVEL=trace \ + QUIETLY= \ + images \ +' + +do_compile_append() { + set -x + mkdir -p ${B}/certs + for pem in $(find ${STAGING_DATADIR}/ca-certificates -name "*.crt") + do + bp=`basename ${pem}` + alias=`echo ${bp} | sed -e 's,\.[^.]*$,,'` + md5a=`echo ${alias} | md5sum | awk '{print $1}'` + der=`echo ${bp} | sed -e 's,crt$,der,'` + openssl x509 -in "${pem}" -inform pem -out "${B}/certs/${md5a}.der" -outform der + ${B}/images/j2sdk-image/bin/keytool -importcert -noprompt -storepass changeit \ + -keystore "${B}/images/j2sdk-image/jre/lib/security/cacerts" \ + -alias "${alias}" -file "${B}/certs/${md5a}.der" + done + set +x +} + +do_install() { + rm -rf ${STAGING_LIBDIR_NATIVE}/jvm/${JDK_DIR} + mkdir -p ${STAGING_LIBDIR_NATIVE}/jvm/${JDK_DIR} + cp -rp ${B}/images/j2sdk-image/* ${STAGING_LIBDIR_NATIVE}/jvm/${JDK_DIR} + +# clean up the mess from bootstrap + for tool in jar java javac keytool pack200 unpack200 + do + rm -f ${STAGING_BINDIR_NATIVE}/$tool + + ln -sf "../lib/jvm/${JDK_DIR}/bin/$tool" ${STAGING_BINDIR_NATIVE}/$tool + done +} diff --git a/recipes-core/openjdk/openjdk-8-native_72b05.bb b/recipes-core/openjdk/openjdk-8-native_72b05.bb new file mode 100644 index 0000000..6eb40eb --- /dev/null +++ b/recipes-core/openjdk/openjdk-8-native_72b05.bb @@ -0,0 +1,28 @@ +require openjdk-8-release-72b05.inc +require openjdk-8-native.inc + +PROVIDES = "virtual/java-native virtual/javac-native" + +inherit update-alternatives + +ALTERNATIVE_${PN} = "java javac jar pack200 unpack200 keytool" +ALTERNATIVE_LINK[java] = "${bindir}/java" +ALTERNATIVE_TARGET[java] = "${JDK_HOME}/bin/java" +ALTERNATIVE_PRIORITY[java] = "100" +ALTERNATIVE_LINK[javac] = "${bindir}/javac" +ALTERNATIVE_TARGET[javac] = "${JDK_HOME}/bin/javac" +ALTERNATIVE_PRIORITY[javac] = "100" +ALTERNATIVE_LINK[jar] = "${bindir}/jar" +ALTERNATIVE_TARGET[jar] = "${JDK_HOME}/bin/jar" +ALTERNATIVE_PRIORITY[jar] = "100" +ALTERNATIVE_LINK[pack200] = "${bindir}/pack200" +ALTERNATIVE_TARGET[pack200] = "${JDK_HOME}/bin/pack200" +ALTERNATIVE_PRIORITY[pack200] = "100" +ALTERNATIVE_LINK[unpack200] = "${bindir}/unpack200" +ALTERNATIVE_TARGET[unpack200] = "${JDK_HOME}/bin/unpack200" +ALTERNATIVE_PRIORITY[unpack200] = "100" +ALTERNATIVE_LINK[keytool] = "${bindir}/keytool" +ALTERNATIVE_TARGET[keytool] = "${JDK_HOME}/bin/keytool" +ALTERNATIVE_PRIORITY[keytool] = "100" + +# PR = "${INC_PR}.1" diff --git a/recipes-core/openjdk/openjdk-8-release-72b05.inc b/recipes-core/openjdk/openjdk-8-release-72b05.inc new file mode 100644 index 0000000..4f9580e --- /dev/null +++ b/recipes-core/openjdk/openjdk-8-release-72b05.inc @@ -0,0 +1,87 @@ +PATCHES_URI="\ + file://remove-shell-variables-from-autoheader.patch;striplevel=0 \ + file://filter-aclocal-copy-too.patch;striplevel=0 \ + file://dont-expect-fqpn-for-make.patch;striplevel=0 \ + file://openjdk8-no-genx11-in-headless.patch;apply=no \ + file://openjdk8-no-unused-deps.patch;apply=no \ + file://openjdk8-find-compiler-fix-env-respect.patch;apply=no \ + file://openjdk8-prevent-debuginfo-in-favour-of-openembedded-package-split.patch;apply=no \ +" + +# Name of the directory containing the compiled output +BUILD_DIR = "openjdk.build" +BUILD_DIR_ECJ = "openjdk.build-ecj" + +# Force arm mode for now +ARM_INSTRUCTION_SET_armv4t = "ARM" + +CORBA_CHANGESET = "7deeb4f70404" +SRC_URI[corba.md5sum] = "544b4963d14fb7155b12dbc56d058649" +SRC_URI[corba.sha256sum] = "a75c31706f634585baf0d0a0b20e321ac634d41d6afb62bd6ffb1f9c0b766d09" + +HOTSPOT_CHANGESET = "d7b01fb81aa8" +SRC_URI[hotspot.md5sum] = "9a94802c1179faedf06d65d2f6fcc6c7" +SRC_URI[hotspot.sha256sum] = "5dacf0b9c86aa78061ca87c9ade1708b56deba35e2e559dcf9dbc50d85ba3ace" + +JAXP_CHANGESET = "acbcb6682c9b" +SRC_URI[jaxp.md5sum] = "34b6700d03a0e2f13a272b4121536544" +SRC_URI[jaxp.sha256sum] = "b6b60e174c3d980773dd56e0a2e7cacc26b05e401f6a08a1ffef594b6166865a" + +JAXWS_CHANGESET = "6aba0f814a15" +SRC_URI[jaxws.md5sum] = "bad8a6e540dca0889d5c0edef47fe6ca" +SRC_URI[jaxws.sha256sum] = "ae57bb090ec2c5338c6f740dbfd20a92f52e60379b764c4bc874464c5955b375" + +JDK_CHANGESET = "39baa472e20c" +SRC_URI[jdk.md5sum] = "746e4d38fa3d31a22239d160688ed447" +SRC_URI[jdk.sha256sum] = "e3587fa57eec72c561f0695723649a745966bb2a74803ff8a451b80fd2079f99" + +LANGTOOLS_CHANGESET = "10ffafaf5340" +SRC_URI[langtools.md5sum] = "4562acae958cc9b9f68300d5c2e6feb3" +SRC_URI[langtools.sha256sum] = "5d14b666fbc6ee93d60c6a135eb8163a95ca5de96d390894e0c0b59719cf7fe4" + +NASHORN_CHANGESET = "9ff5c2181333" +SRC_URI[nashorn.md5sum] = "c6d234d73ab4d95072b7600b731bbfff" +SRC_URI[nashorn.sha256sum] = "f56ee0bc65c8f4954bbec0e777c0158a44dc4b744407991a96f6627be433807d" + +OPENJDK_CHANGESET = "e8bed1496ff2" +SRC_URI[openjdk.md5sum] = "182992a90cbe209b34142f934319704b" +SRC_URI[openjdk.sha256sum] = "d835a9adcf766e68d5a73fb36040d9e35b36c0363c883b8f05560c49bb22bf0c" + +OPENJDK_HG_U = "jdk8u" +OPENJDK_HG_URL = "http://hg.openjdk.java.net/jdk8u/${OPENJDK_HG_U}" + +OPENJDK_FILE = "${OPENJDK_CHANGESET}.tar.bz2" +OPENJDK_URI = "${OPENJDK_HG_URL}/archive/${OPENJDK_FILE};name=openjdk" + +HOTSPOT_FILE = "${HOTSPOT_CHANGESET}.tar.bz2" +HOTSPOT_URI = "${OPENJDK_HG_URL}/hotspot/archive/${HOTSPOT_FILE};name=hotspot;unpack=false" + +CORBA_FILE = "${CORBA_CHANGESET}.tar.bz2" +CORBA_URI = "${OPENJDK_HG_URL}/corba/archive/${CORBA_FILE};name=corba;unpack=false" + +JAXP_FILE = "${JAXP_CHANGESET}.tar.bz2" +JAXP_URI = "${OPENJDK_HG_URL}/jaxp/archive/${JAXP_FILE};name=jaxp;unpack=false" + +JAXWS_FILE = "${JAXWS_CHANGESET}.tar.bz2" +JAXWS_URI = "${OPENJDK_HG_URL}/jaxws/archive/${JAXWS_FILE};name=jaxws;unpack=false" + +JDK_FILE = "${JDK_CHANGESET}.tar.bz2" +JDK_URI = "${OPENJDK_HG_URL}/jdk/archive/${JDK_FILE};name=jdk;unpack=false" + +LANGTOOLS_FILE = "${LANGTOOLS_CHANGESET}.tar.bz2" +LANGTOOLS_URI = "${OPENJDK_HG_URL}/langtools/archive/${LANGTOOLS_FILE};name=langtools;unpack=false" + +NASHORN_FILE = "${NASHORN_CHANGESET}.tar.bz2" +NASHORN_URI = "${OPENJDK_HG_URL}/nashorn/archive/${NASHORN_FILE};name=nashorn;unpack=false" +# +#CACAO_VERSION = "e215e36be9fc" +#CACAO_FILE = "${CACAO_VERSION}.tar.gz" +#CACAO_URI = "http://icedtea.wildebeest.org/download/drops/cacao/${CACAO_FILE};name=cacao;unpack=false" +#SRC_URI[cacao.md5sum] = "79f95f0aea4ba04cf2f1a8632ac66d14" +#SRC_URI[cacao.sha256sum] = "4966514c72ee7ed108b882d9b6e65c3adf8a8f9c2dccb029f971b3c8cb4870ab" +# +#JAMVM_VERSION = "ec18fb9e49e62dce16c5094ef1527eed619463aa" +#JAMVM_FILE = "jamvm-${JAMVM_VERSION}.tar.gz" +#JAMVM_URI = "http://icedtea.wildebeest.org/download/drops/jamvm/${JAMVM_FILE};name=jamvm;unpack=false" +#SRC_URI[jamvm.md5sum] = "d50ae193d01a9251e10679c7a2cc6ff1" +#SRC_URI[jamvm.sha256sum] = "31810266666c23822942aac62a78019c2c4589e1c5ee48329cbf42652d4437bc" diff --git a/recipes-core/openjdk/openjdk-8_72b05.bb b/recipes-core/openjdk/openjdk-8_72b05.bb new file mode 100644 index 0000000..4c8899e --- /dev/null +++ b/recipes-core/openjdk/openjdk-8_72b05.bb @@ -0,0 +1,36 @@ +require openjdk-8-release-72b05.inc +require openjdk-8-cross.inc + +# some patches extracted from http://cr.openjdk.java.net/~rkennke/shark-build-hotspot/webrev.01/hotspot.patch +# reported via http://mail.openjdk.java.net/pipermail/build-dev/2015-January/013972.html +# by Roman Kennke (rkennke at redhat.com) +PATCHES_URI_append = "\ + file://openjdk8-restrict-to-staging-dir.patch;apply=no \ + file://openjdk8-fix-shark-build.patch;apply=no \ + file://openjdk8-fix-shark-stdc++11.patch;apply=no \ + file://openjdk8-use_builtin_frame_address_0_rather_than_returning_address_of_local_variable.patch;apply=no \ +" + +do_install() { + do_install_jdk +} + +PACKAGES_append = " \ + ${JDKPN}-demo-dbg \ + ${JDKPN}-demo \ + ${JDKPN}-source \ +" + +RPROVIDES_${JDKPN} = "java2-vm" +PROVIDES_${JDKPN} = "java2-vm" +RPROVIDES_${JDKPN} = "java2-runtime" +PROVIDES_${JDKPN} = "java2-runtime" + +inherit update-alternatives + +ALTERNATIVE_${PN} = "java" +ALTERNATIVE_LINK = "${bindir}/java" +ALTERNATIVE_TARGET = "${JDK_HOME}/bin/java" +ALTERNATIVE_PRIORITY = "100" + +# PR = "${INC_PR}.1" diff --git a/recipes-core/openjdk/openjre-8_72b05.bb b/recipes-core/openjdk/openjre-8_72b05.bb new file mode 100644 index 0000000..67eb1d3 --- /dev/null +++ b/recipes-core/openjdk/openjre-8_72b05.bb @@ -0,0 +1,30 @@ +require openjdk-8-release-72b05.inc +require openjdk-8-cross.inc + +# some patches extracted from http://cr.openjdk.java.net/~rkennke/shark-build-hotspot/webrev.01/hotspot.patch +# reported via http://mail.openjdk.java.net/pipermail/build-dev/2015-January/013972.html +# by Roman Kennke (rkennke at redhat.com) +PATCHES_URI_append = "\ + file://openjdk8-restrict-to-staging-dir.patch;apply=no \ + file://openjdk8-fix-shark-build.patch;apply=no \ + file://openjdk8-fix-shark-stdc++11.patch;apply=no \ + file://openjdk8-use_builtin_frame_address_0_rather_than_returning_address_of_local_variable.patch;apply=no \ +" + +do_install() { + do_install_jre +} + +RPROVIDES_${JREPN} = "java2-vm" +PROVIDES_${JREPN} = "java2-vm" +RPROVIDES_${JREPN} = "java2-runtime" +PROVIDES_${JREPN} = "java2-runtime" + +inherit update-alternatives + +ALTERNATIVE_${PN} = "java" +ALTERNATIVE_LINK = "${bindir}/java" +ALTERNATIVE_TARGET = "${JRE_HOME}/bin/java" +ALTERNATIVE_PRIORITY = "100" + +# PR = "${INC_PR}.1" diff --git a/recipes-core/openjdk/patches-openjdk-8/LICENSE b/recipes-core/openjdk/patches-openjdk-8/LICENSE new file mode 100644 index 0000000..b40a0f4 --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/LICENSE @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 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 General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., 59 + Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff --git a/recipes-core/openjdk/patches-openjdk-8/dont-expect-fqpn-for-make.patch b/recipes-core/openjdk/patches-openjdk-8/dont-expect-fqpn-for-make.patch new file mode 100644 index 0000000..a8a9c1d --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/dont-expect-fqpn-for-make.patch @@ -0,0 +1,18 @@ +--- common/autoconf/basics.m4.orig 2015-08-17 19:05:13.122672019 +0200 ++++ common/autoconf/basics.m4 2015-08-17 19:13:01.482673782 +0200 +@@ -549,10 +549,12 @@ + # We need to find a recent version of GNU make. Especially on Solaris, this can be tricky. + if test "x$MAKE" != x; then + # User has supplied a make, test it. +- if test ! -f "$MAKE"; then +- AC_MSG_ERROR([The specified make (by MAKE=$MAKE) is not found.]) ++ if test -a `dirname "$MAKE"` = "." -a ! -f "$MAKE"; then ++ AC_PATH_PROGS(CHECK_MAKE, $MAKE) ++ else ++ CHECK_MAKE="${MAKE}" + fi +- BASIC_CHECK_MAKE_VERSION("$MAKE", [user supplied MAKE=$MAKE]) ++ BASIC_CHECK_MAKE_VERSION("$CHECK_MAKE", [user supplied MAKE=$MAKE]) + if test "x$FOUND_MAKE" = x; then + AC_MSG_ERROR([The specified make (by MAKE=$MAKE) is not GNU make 3.81 or newer.]) + fi diff --git a/recipes-core/openjdk/patches-openjdk-8/filter-aclocal-copy-too.patch b/recipes-core/openjdk/patches-openjdk-8/filter-aclocal-copy-too.patch new file mode 100644 index 0000000..4679c9d --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/filter-aclocal-copy-too.patch @@ -0,0 +1,11 @@ +--- common/autoconf/basics.m4.orig 2015-08-17 18:31:50.598664481 +0200 ++++ common/autoconf/basics.m4 2015-08-17 18:31:57.554664507 +0200 +@@ -442,7 +442,7 @@ + files_present=`$LS $OUTPUT_ROOT` + # Configure has already touched config.log and confdefs.h in the current dir when this check + # is performed. +- filtered_files=`$ECHO "$files_present" | $SED -e 's/config.log//g' -e 's/confdefs.h//g' -e 's/ //g' \ ++ filtered_files=`$ECHO "$files_present" | $SED -e 's/config.log//g' -e 's/confdefs.h//g' -e 's,aclocal-copy,,g' -e 's/ //g' \ + | $TR -d '\n'` + if test "x$filtered_files" != x; then + AC_MSG_NOTICE([Current directory is $CURDIR.]) diff --git a/recipes-core/openjdk/patches-openjdk-8/jvm.cfg b/recipes-core/openjdk/patches-openjdk-8/jvm.cfg new file mode 100644 index 0000000..56eebef --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/jvm.cfg @@ -0,0 +1,41 @@ +# Copyright 2003 Sun Microsystems, Inc. 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 +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun in the LICENSE file that accompanied this code. +# +# This code 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 General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. +# +# +# List of JVMs that can be used as an option to java, javac, etc. +# Order is important -- first in this list is the default JVM. +# NOTE that this both this file and its format are UNSUPPORTED and +# WILL GO AWAY in a future release. +# +# You may also select a JVM in an arbitrary location with the +# "-XXaltjvm=" option, but that too is unsupported +# and may not be available in a future release. +# +-server ERROR +-client IGNORE +-hotspot ERROR +-classic WARN +-native ERROR +-green ERROR +-zero ALIASED_TO -server +-shark ERROR diff --git a/recipes-core/openjdk/patches-openjdk-8/openjdk8-find-compiler-fix-env-respect.patch b/recipes-core/openjdk/patches-openjdk-8/openjdk8-find-compiler-fix-env-respect.patch new file mode 100644 index 0000000..0750dac --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/openjdk8-find-compiler-fix-env-respect.patch @@ -0,0 +1,140 @@ +--- common/autoconf/toolchain.m4.orig 2015-08-07 20:52:38.000000000 +0200 ++++ common/autoconf/toolchain.m4 2015-10-27 13:57:19.708566525 +0100 +@@ -27,7 +27,7 @@ + # $2 = human readable name of compiler (C or C++) + AC_DEFUN([TOOLCHAIN_CHECK_COMPILER_VERSION], + [ +- COMPILER=[$]$1 ++ COMPILER="[$]$1" + COMPILER_NAME=$2 + + if test "x$OPENJDK_TARGET_OS" = xsolaris; then +@@ -123,64 +123,37 @@ + [ + COMPILER_NAME=$2 + +- $1= ++ FOUND_$1= ++ ++ if test "x[$]$1" != "x"; then ++ FOUND_$1="[$]$1" ++ fi ++ + # If TOOLS_DIR is set, check for all compiler names in there first + # before checking the rest of the PATH. +- if test -n "$TOOLS_DIR"; then ++ if test "x[$]FOUND_$1" = x -a -n "$TOOLS_DIR"; then + PATH_save="$PATH" + PATH="$TOOLS_DIR" + AC_PATH_PROGS(TOOLS_DIR_$1, $3) +- $1=$TOOLS_DIR_$1 ++ FOUND_$1=$TOOLS_DIR_$1 + PATH="$PATH_save" + fi + + # AC_PATH_PROGS can't be run multiple times with the same variable, + # so create a new name for this run. +- if test "x[$]$1" = x; then ++ if test "x[$]FOUND_$1" = x; then + AC_PATH_PROGS(POTENTIAL_$1, $3) +- $1=$POTENTIAL_$1 ++ FOUND_$1=$POTENTIAL_$1 + fi + +- if test "x[$]$1" = x; then ++ if test "x[$]FOUND_$1" = x; then + HELP_MSG_MISSING_DEPENDENCY([devkit]) + AC_MSG_ERROR([Could not find a $COMPILER_NAME compiler. $HELP_MSG]) + fi +- BASIC_FIXUP_EXECUTABLE($1) +- TEST_COMPILER="[$]$1" +- # Don't remove symbolic links on AIX because 'xlc_r' and 'xlC_r' may all be links +- # to 'xlc' but it is crucial that we invoke the compiler with the right name! +- if test "x$OPENJDK_BUILD_OS" != xaix; then +- AC_MSG_CHECKING([resolved symbolic links for $1]) +- BASIC_REMOVE_SYMBOLIC_LINKS(TEST_COMPILER) +- AC_MSG_RESULT([$TEST_COMPILER]) +- fi +- AC_MSG_CHECKING([if $1 is disguised ccache]) +- +- COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"` +- if test "x$COMPILER_BASENAME" = "xccache"; then +- AC_MSG_RESULT([yes, trying to find proper $COMPILER_NAME compiler]) +- # We /usr/lib/ccache in the path, so cc is a symlink to /usr/bin/ccache. +- # We want to control ccache invocation ourselves, so ignore this cc and try +- # searching again. +- +- # Remove the path to the fake ccache cc from the PATH +- RETRY_COMPILER_SAVED_PATH="$PATH" +- COMPILER_DIRNAME=`$DIRNAME [$]$1` +- PATH="`$ECHO $PATH | $SED -e "s,$COMPILER_DIRNAME,,g" -e "s,::,:,g" -e "s,^:,,g"`" +- +- # Try again looking for our compiler +- AC_CHECK_TOOLS(PROPER_COMPILER_$1, $3) +- BASIC_FIXUP_EXECUTABLE(PROPER_COMPILER_$1) +- PATH="$RETRY_COMPILER_SAVED_PATH" +- +- AC_MSG_CHECKING([for resolved symbolic links for $1]) +- BASIC_REMOVE_SYMBOLIC_LINKS(PROPER_COMPILER_$1) +- AC_MSG_RESULT([$PROPER_COMPILER_$1]) +- $1="$PROPER_COMPILER_$1" +- else +- AC_MSG_RESULT([no, keeping $1]) +- $1="$TEST_COMPILER" +- fi ++ BASIC_FIXUP_EXECUTABLE(FOUND_$1) ++ TEST_COMPILER="[$]FOUND_$1" ++ ++ $1="$TEST_COMPILER" + TOOLCHAIN_CHECK_COMPILER_VERSION([$1], [$COMPILER_NAME]) + ]) + +@@ -214,12 +187,12 @@ + # otherwise we might pick up cross-compilers which don't use standard naming. + # Otherwise, we'll set the BUILD_tools to the native tools, but that'll have + # to wait until they are properly discovered. +- AC_PATH_PROGS(BUILD_CC, [cl cc gcc]) +- BASIC_FIXUP_EXECUTABLE(BUILD_CC) +- AC_PATH_PROGS(BUILD_CXX, [cl CC g++]) +- BASIC_FIXUP_EXECUTABLE(BUILD_CXX) +- AC_PATH_PROG(BUILD_LD, ld) +- BASIC_FIXUP_EXECUTABLE(BUILD_LD) ++ AS_IF([test "x${BUILD_CC}" = "x"], [AC_PATH_PROGS(BUILD_CC, [cl cc gcc]) ++ BASIC_FIXUP_EXECUTABLE(BUILD_CC)]) ++ AS_IF([test "x${BUILD_CXX}" = "x"], [AC_PATH_PROGS(BUILD_CXX, [cl CC g++]) ++ BASIC_FIXUP_EXECUTABLE(BUILD_CXX)]) ++ AS_IF([test "x${BUILD_LD}" = "x"], [AC_PATH_PROG(BUILD_LD, ld) ++ BASIC_FIXUP_EXECUTABLE(BUILD_LD)]) + fi + AC_SUBST(BUILD_CC) + AC_SUBST(BUILD_CXX) +--- common/autoconf/basics.m4.orig 2015-08-31 15:03:54.942975387 +0200 ++++ common/autoconf/basics.m4 2015-08-31 15:02:25.090975049 +0200 +@@ -171,8 +171,15 @@ + fi + fi + ++ # First separate the path from the arguments. This will split at the first ++ # space. ++ complete="[$]$1" ++ path="${complete%% *}" ++ tmp="$complete EOL" ++ arguments="${tmp#* }" ++ + if test "x$READLINK" != x; then +- $1=`$READLINK -f [$]$1` ++ new_path=`$READLINK -f $path` + else + # Save the current directory for restoring afterwards + STARTDIR=$PWD +@@ -198,8 +205,9 @@ + let COUNTER=COUNTER+1 + done + cd $STARTDIR +- $1=$sym_link_dir/$sym_link_file ++ new_path=$sym_link_dir/$sym_link_file + fi ++ $1="$new_path ${arguments% *}" + fi + ]) + diff --git a/recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-build.patch b/recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-build.patch new file mode 100644 index 0000000..bc1abbd --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-build.patch @@ -0,0 +1,453 @@ +--- hotspot/make/Makefile.orig 2015-08-31 19:44:44.459038814 +0200 ++++ hotspot/make/Makefile 2015-08-31 19:44:58.511038867 +0200 +@@ -525,7 +525,7 @@ + # Unix + $(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(SHARK_BUILD_DIR)/%.$(LIBRARY_SUFFIX) + $(install-file) +-$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo): $(SHARK_BUILD_DIR)/%.debuginfo ++$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(SHARK_BUILD_DIR)/%.debuginfo + $(install-file) + $(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: $(SHARK_BUILD_DIR)/%.diz + $(install-file) +--- hotspot/src/share/vm/ci/ciTypeFlow.cpp.orig 2015-08-31 19:45:28.611038980 +0200 ++++ hotspot/src/share/vm/ci/ciTypeFlow.cpp 2015-08-31 19:47:17.539039390 +0200 +@@ -35,7 +35,9 @@ + #include "interpreter/bytecode.hpp" + #include "interpreter/bytecodes.hpp" + #include "memory/allocation.inline.hpp" +-#include "opto/compile.hpp" ++#ifdef COMPILER2 ++#include "opto/compile.hpp" + #include "opto/node.hpp" ++#endif + #include "runtime/deoptimization.hpp" + #include "utilities/growableArray.hpp" +@@ -2647,6 +2649,7 @@ + assert (!blk->has_pre_order(), ""); + blk->set_next_pre_order(); + ++#ifdef COMPILER2 + if (_next_pre_order >= (int)Compile::current()->max_node_limit() / 2) { + // Too many basic blocks. Bail out. + // This can happen when try/finally constructs are nested to depth N, +@@ -2656,6 +2659,7 @@ + record_failure("too many basic blocks"); + return; + } ++#endif + if (do_flow) { + flow_block(blk, temp_vector, temp_set); + if (failing()) return; // Watch for bailouts. +--- hotspot/src/share/vm/classfile/systemDictionary.cpp.orig 2015-08-31 19:50:00.367040003 +0200 ++++ hotspot/src/share/vm/classfile/systemDictionary.cpp 2015-08-31 19:51:28.323040334 +0200 +@@ -2276,6 +2276,7 @@ + spe = NULL; + // Must create lots of stuff here, but outside of the SystemDictionary lock. + m = Method::make_method_handle_intrinsic(iid, signature, CHECK_(empty)); ++#ifndef SHARK + if (!Arguments::is_interpreter_only()) { + // Generate a compiled form of the MH intrinsic. + AdapterHandlerLibrary::create_native_wrapper(m); +@@ -2285,6 +2286,7 @@ + "out of space in CodeCache for method handle intrinsic", empty); + } + } ++#endif + // Now grab the lock. We might have to throw away the new method, + // if a racing thread has managed to install one at the same time. + { +@@ -2298,9 +2300,11 @@ + } + + assert(spe != NULL && spe->method() != NULL, ""); ++#ifndef SHARK + assert(Arguments::is_interpreter_only() || (spe->method()->has_compiled_code() && + spe->method()->code()->entry_point() == spe->method()->from_compiled_entry()), + "MH intrinsic invariant"); ++#endif + return spe->method(); + } + +--- hotspot/src/share/vm/runtime/handles.inline.hpp.orig 2015-08-31 20:01:39.295042634 +0200 ++++ hotspot/src/share/vm/runtime/handles.inline.hpp 2015-08-31 20:04:31.331043282 +0200 +@@ -51,6 +51,12 @@ + } + #endif // ASSERT + ++#ifdef SHARK ++#define assert_on_stack(expr) (void)(expr) ++#else ++#define assert_on_stack(expr) assert((expr), "not on stack?") ++#endif ++ + // Constructors for metadata handles + #define DEF_METADATA_HANDLE_FN(name, type) \ + inline name##Handle::name##Handle(type* obj) : _value(obj), _thread(NULL) { \ +@@ -79,7 +85,7 @@ + } else { \ + _thread = Thread::current(); \ + } \ +- assert (_thread->is_in_stack((address)this), "not on stack?"); \ ++ assert_on_stack (_thread->is_in_stack((address)this)); \ + _thread->metadata_handles()->push((Metadata*)_value); \ + } else { \ + _thread = NULL; \ +--- hotspot/src/cpu/zero/vm/entry_zero.hpp.orig 2015-08-31 20:53:40.743054385 +0200 ++++ hotspot/src/cpu/zero/vm/entry_zero.hpp 2015-08-31 20:53:54.459054436 +0200 +@@ -26,6 +26,10 @@ + #ifndef CPU_ZERO_VM_ENTRY_ZERO_HPP + #define CPU_ZERO_VM_ENTRY_ZERO_HPP + ++#include "utilities/globalDefinitions.hpp" ++#include "utilities/exceptions.hpp" ++#include "interpreter/cppInterpreter.hpp" ++ + class ZeroEntry { + public: + ZeroEntry() { +--- hotspot/src/share/vm/shark/sharkEntry.hpp.orig 2015-08-31 20:47:13.091052925 +0200 ++++ hotspot/src/share/vm/shark/sharkEntry.hpp 2015-08-31 20:49:42.755053489 +0200 +@@ -27,6 +27,7 @@ + #define SHARE_VM_SHARK_SHARKENTRY_HPP + + #include "shark/llvmHeaders.hpp" ++#include "entry_zero.hpp" + + class SharkContext; + +--- hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp.orig 2015-08-31 21:01:14.847056094 +0200 ++++ hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp 2015-08-31 21:01:24.459056130 +0200 +@@ -30,6 +30,10 @@ + + #ifdef CC_INTERP + ++#ifdef TARGET_ARCH_zero ++#include "entry_zero.hpp" ++#endif ++ + class CppInterpreterGenerator: public AbstractInterpreterGenerator { + protected: + // shared code sequences +--- hotspot/src/cpu/zero/vm/nativeInst_zero.cpp.orig 2015-08-31 21:07:21.643057475 +0200 ++++ hotspot/src/cpu/zero/vm/nativeInst_zero.cpp 2015-08-31 21:14:49.019059159 +0200 +@@ -26,6 +26,9 @@ + #include "precompiled.hpp" + #include "assembler_zero.inline.hpp" + #include "memory/resourceArea.hpp" ++#ifdef CC_INTERP ++#include "entry_zero.hpp" ++#endif + #include "nativeInst_zero.hpp" + #include "oops/oop.inline.hpp" + #include "runtime/handles.hpp" +--- hotspot/src/share/vm/shark/llvmHeaders.hpp.orig 2015-09-01 14:17:09.793868541 +0200 ++++ hotspot/src/share/vm/shark/llvmHeaders.hpp 2015-09-01 16:20:25.653868618 +0200 +@@ -35,7 +35,11 @@ + #undef DEBUG + #endif + ++#if SHARK_LLVM_VERSION <= 34 + #include ++#else ++#include ++#endif + #include + + // includes specific to each version +--- common/autoconf/libraries.m4.orig 2015-09-01 16:53:51.821868486 +0200 ++++ common/autoconf/libraries.m4 2015-09-01 16:55:27.653868542 +0200 +@@ -847,8 +847,9 @@ + fi + fi + done +- llvm_version=$("${LLVM_CONFIG}" --version | sed 's/\.//; s/svn.*//') ++ llvm_version=$("${LLVM_CONFIG}" --version | sed 's/\.//; s/svn.*//; s/\..*$//') + LLVM_CFLAGS="${LLVM_CFLAGS} -DSHARK_LLVM_VERSION=${llvm_version}" ++ AS_IF([test $llvm_version -ge 34], [LLVM_CFLAGS="${LLVM_CFLAGS} -std=gnu++11"]) + + unset LLVM_LDFLAGS + for flag in $("${LLVM_CONFIG}" --ldflags); do +@@ -862,7 +862,7 @@ + done + + unset LLVM_LIBS +- for flag in $("${LLVM_CONFIG}" --libs ${llvm_components}); do ++ for flag in $("${LLVM_CONFIG}" --libs --system-libs ${llvm_components}); do + if echo "${flag}" | grep -q '^-l'; then + if test "${LLVM_LIBS}" != ""; then + LLVM_LIBS="${LLVM_LIBS} " +--- hotspot/src/share/vm/shark/sharkIntrinsics.cpp.orig 2015-09-02 16:58:17.000000000 +0200 ++++ hotspot/src/share/vm/shark/sharkIntrinsics.cpp 2015-09-02 17:09:26.000000000 +0200 +@@ -265,7 +265,11 @@ + "addr"); + + // Perform the operation ++#if SHARK_LLVM_VERSION <= 34 + Value *result = builder()->CreateAtomicCmpXchg(addr, e, x, llvm::SequentiallyConsistent); ++#else ++ Value *result = builder()->CreateAtomicCmpXchg(addr, e, x, llvm::SequentiallyConsistent, llvm::SequentiallyConsistent); ++ #endif + // Push the result + state()->push( + SharkValue::create_jint( +--- hotspot/src/share/vm/shark/sharkRuntime.cpp.orig 2015-09-02 17:11:58.000000000 +0200 ++++ hotspot/src/share/vm/shark/sharkRuntime.cpp 2015-09-02 17:12:57.000000000 +0200 +@@ -32,6 +32,7 @@ + #ifdef TARGET_ARCH_zero + # include "stack_zero.inline.hpp" + #endif ++#include "memory/oopFactory.hpp" + + using namespace llvm; + +--- hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp.orig 2015-09-02 17:23:07.000000000 +0200 ++++ hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp 2015-09-02 17:43:20.000000000 +0200 +@@ -1732,7 +1732,11 @@ + heap_object = builder()->CreateIntToPtr( + old_top, SharkType::oop_type(), "heap_object"); + ++#if SHARK_LLVM_VERSION <= 34 + Value *check = builder()->CreateAtomicCmpXchg(top_addr, old_top, new_top, llvm::SequentiallyConsistent); ++#else ++ Value *check = builder()->CreateAtomicCmpXchg(top_addr, old_top, new_top, llvm::SequentiallyConsistent, llvm::SequentiallyConsistent); ++#endif + builder()->CreateCondBr( + builder()->CreateICmpEQ(old_top, check), + initialize, retry); +@@ -1933,7 +1937,11 @@ + + Value *lock = builder()->CreatePtrToInt( + monitor_header_addr, SharkType::intptr_type()); ++#if SHARK_LLVM_VERSION <= 34 + Value *check = builder()->CreateAtomicCmpXchg(mark_addr, disp, lock, llvm::Acquire); ++#else ++ Value *check = builder()->CreateAtomicCmpXchg(mark_addr, disp, lock, llvm::Acquire, llvm::Acquire); ++#endif + builder()->CreateCondBr( + builder()->CreateICmpEQ(disp, check), + acquired_fast, try_recursive); +@@ -2018,7 +2026,11 @@ + PointerType::getUnqual(SharkType::intptr_type()), + "mark_addr"); + ++#if SHARK_LLVM_VERSION <= 34 + Value *check = builder()->CreateAtomicCmpXchg(mark_addr, lock, disp, llvm::Release); ++#else ++ Value *check = builder()->CreateAtomicCmpXchg(mark_addr, lock, disp, llvm::Release, llvm::Monotonic); ++#endif + builder()->CreateCondBr( + builder()->CreateICmpEQ(lock, check), + released_fast, slow_path); +--- hotspot/src/cpu/zero/vm/interpreter_zero.cpp.orig 2015-09-14 20:13:25.539432044 +0200 ++++ hotspot/src/cpu/zero/vm/interpreter_zero.cpp 2015-09-14 20:13:46.107432122 +0200 +@@ -49,7 +49,7 @@ + #ifdef COMPILER1 + #include "c1/c1_Runtime1.hpp" + #endif +-#ifdef CC_INTERP ++#if defined(CC_INTERP) || defined(SHARK) + #include "interpreter/cppInterpreter.hpp" + #endif + +--- hotspot/src/share/vm/shark/sharkCompiler.hpp.orig 2015-08-31 20:08:44.723044236 +0200 ++++ hotspot/src/share/vm/shark/sharkCompiler.hpp 2015-08-31 20:08:59.387044291 +0200 +@@ -40,6 +40,8 @@ + // Creation + SharkCompiler(); + ++ void init_llvm(); ++ + // Name of this compiler + const char *name() { return "shark"; } + +--- hotspot/src/share/vm/shark/sharkCompiler.cpp.orig 2015-09-19 12:19:21.000000000 +0200 ++++ hotspot/src/share/vm/shark/sharkCompiler.cpp 2015-09-19 12:27:17.000000000 +0200 +@@ -61,11 +61,25 @@ + : AbstractCompiler() { + // Create the lock to protect the memory manager and execution engine + _execution_engine_lock = new Monitor(Mutex::leaf, "SharkExecutionEngineLock"); +- MutexLocker locker(execution_engine_lock()); ++ { ++ MutexLocker locker(execution_engine_lock()); ++ init_llvm(); ++ } ++ // All done ++ set_state(initialized); ++} + ++void SharkCompiler::init_llvm() { ++ // with llvm 3.5, Multi-threading can only be enabled/disabled with the ++ // compile time define LLVM_ENABLE_THREADS ++#if SHARK_LLVM_VERSION <= 34 + // Make LLVM safe for multithreading + if (!llvm_start_multithreaded()) + fatal("llvm_start_multithreaded() failed"); ++#else ++ if (!llvm_is_multithreaded()) ++ fatal("llvm_is_multithreaded() tells no multithreading support in llvm"); ++#endif + + // Initialize the native target + InitializeNativeTarget(); +@@ -83,7 +97,7 @@ + // Finetune LLVM for the current host CPU. + StringMap Features; + bool gotCpuFeatures = llvm::sys::getHostCPUFeatures(Features); +- std::string cpu("-mcpu=" + llvm::sys::getHostCPUName()); ++ std::string cpu("-mcpu=" + std::string(llvm::sys::getHostCPUName())); + + std::vector args; + args.push_back(""); // program name +@@ -112,6 +126,9 @@ + builder.setMAttrs(MAttrs); + builder.setJITMemoryManager(memory_manager()); + builder.setEngineKind(EngineKind::JIT); ++#if SHARK_LLVM_VERSION > 34 ++ builder.setUseMCJIT(true); ++#endif + builder.setErrorStr(&ErrorMsg); + if (! fnmatch(SharkOptimizationLevel, "None", 0)) { + tty->print_cr("Shark optimization level set to: None"); +@@ -134,9 +151,10 @@ + } + ++#if SHARK_LLVM_VERSION > 34 ++ _native_context->execution_engine(_execution_engine); ++ _normal_context->execution_engine(_execution_engine); ++#endif + execution_engine()->addModule(_native_context->module()); +- +- // All done +- set_state(initialized); + } + + void SharkCompiler::initialize() { +@@ -165,7 +179,7 @@ + } + + // Create the recorders +- Arena arena; ++ Arena arena(mtCompiler); + env->set_oop_recorder(new OopRecorder(&arena)); + OopMapSet oopmaps; + env->set_debug_info(new DebugInformationRecorder(env->oop_recorder())); +@@ -268,7 +282,12 @@ + + if (SharkVerifyFunction != NULL) { + if (!fnmatch(SharkVerifyFunction, name, 0)) { ++#if SHARK_LLVM_VERSION <= 34 + verifyFunction(*function); ++#else ++ LLVMValueRef F = wrap(function); ++ LLVMVerifyFunction(F, LLVMAbortProcessAction); ++#endif + } + } + +@@ -298,7 +317,11 @@ + #endif + #endif // !NDEBUG + memory_manager()->set_entry_for_function(function, entry); ++#if SHARK_LLVM_VERSION <= 34 + code = (address) execution_engine()->getPointerToFunction(function); ++#else ++ code = (address) execution_engine()->getFunctionAddress(name); ++#endif + } + assert(code != NULL, "code must be != NULL"); + entry->set_entry_point(code); +--- hotspot/src/share/vm/shark/sharkContext.cpp.orig 2015-09-21 11:22:51.707813194 +0200 ++++ hotspot/src/share/vm/shark/sharkContext.cpp 2015-09-21 13:47:56.243845961 +0200 +@@ -34,8 +34,13 @@ + using namespace llvm; + + SharkContext::SharkContext(const char* name) +- : LLVMContext(), +- _free_queue(NULL) { ++ : LLVMContext() ++ , _free_queue(0) ++#if SHARK_LLVM_VERSION > 34 ++ , _ee(0) ++ , func_mod_map() ++#endif ++{ + // Create a module to build our functions into + _module = new Module(name, *this); + +--- hotspot/src/share/vm/shark/sharkContext.hpp.orig 2015-09-21 10:58:37.195807719 +0200 ++++ hotspot/src/share/vm/shark/sharkContext.hpp 2015-09-21 13:50:48.459846609 +0200 +@@ -29,6 +29,8 @@ + #include "shark/llvmHeaders.hpp" + #include "shark/sharkCompiler.hpp" + ++#include ++ + // The LLVMContext class allows multiple instances of LLVM to operate + // independently of each other in a multithreaded context. We extend + // this here to store things in Shark that are LLVMContext-specific. +@@ -41,12 +43,28 @@ + + private: + llvm::Module* _module; ++#if SHARK_LLVM_VERSION > 34 ++ llvm::ExecutionEngine *_ee; ++ std::map func_mod_map; ++#endif + + public: + llvm::Module* module() const { + return _module; + } + ++#if SHARK_LLVM_VERSION > 34 ++ llvm::ExecutionEngine *execution_engine(llvm::ExecutionEngine *ee) { ++ llvm::ExecutionEngine *oee = _ee; ++ _ee = ee; ++ return oee; ++ } ++ ++ llvm::ExecutionEngine *execution_engine() const { ++ return _ee; ++ } ++#endif ++ + // Get this thread's SharkContext + public: + static SharkContext& current() { +@@ -55,12 +73,35 @@ + + // Module accessors + public: +- void add_function(llvm::Function* function) const { ++ void add_function(llvm::Function* function) { ++#if SHARK_LLVM_VERSION <= 34 + module()->getFunctionList().push_back(function); ++#else ++ // shark compiles modules, not functions ++ std::map::iterator i = func_mod_map.find(function->getName().str()); ++ if(func_mod_map.end() == i) { ++ llvm::Module *mod4fun = new llvm::Module(function->getName(), *this); ++ func_mod_map.insert(std::pair(function->getName().str(), mod4fun)); ++ mod4fun->getFunctionList().push_back(function); ++ _ee->addModule(mod4fun); ++ } ++#endif + } + llvm::Constant* get_external(const char* name, + llvm::FunctionType* sig) { ++ // XXX see whether we need additional module map, too ++#if SHARK_LLVM_VERSION <= 34 + return module()->getOrInsertFunction(name, sig); ++#else ++ // shark compiles modules, not functions ++ std::map::iterator i = func_mod_map.find(name); ++ if(func_mod_map.end() == i) { ++ llvm::Module *mod4fun = new llvm::Module(name, *this); ++ func_mod_map.insert(std::pair(name, mod4fun)); ++ mod4fun->getOrInsertFunction(name, sig); ++ _ee->addModule(mod4fun); ++ } ++#endif + } + + // Basic types diff --git a/recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-stdc++11.patch b/recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-stdc++11.patch new file mode 100644 index 0000000..a35a1be --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-stdc++11.patch @@ -0,0 +1,2730 @@ +--- hotspot/src/share/vm/memory/cardTableModRefBS.hpp.orig 2015-09-02 09:45:31.000000000 +0200 ++++ hotspot/src/share/vm/memory/cardTableModRefBS.hpp 2015-09-02 09:46:59.000000000 +0200 +@@ -158,8 +158,8 @@ + // Mapping from address to card marking array entry + jbyte* byte_for(const void* p) const { + assert(_whole_heap.contains(p), +- err_msg("Attempt to access p = "PTR_FORMAT" out of bounds of " +- " card marking array's _whole_heap = ["PTR_FORMAT","PTR_FORMAT")", ++ err_msg("Attempt to access p = " PTR_FORMAT " out of bounds of " ++ " card marking array's _whole_heap = [" PTR_FORMAT "," PTR_FORMAT ")", + p2i(p), p2i(_whole_heap.start()), p2i(_whole_heap.end()))); + jbyte* result = &byte_map_base[uintptr_t(p) >> card_shift]; + assert(result >= _byte_map && result < _byte_map + _byte_map_size, +@@ -436,8 +436,8 @@ + size_t delta = pointer_delta(p, byte_map_base, sizeof(jbyte)); + HeapWord* result = (HeapWord*) (delta << card_shift); + assert(_whole_heap.contains(result), +- err_msg("Returning result = "PTR_FORMAT" out of bounds of " +- " card marking array's _whole_heap = ["PTR_FORMAT","PTR_FORMAT")", ++ err_msg("Returning result = " PTR_FORMAT " out of bounds of " ++ " card marking array's _whole_heap = [" PTR_FORMAT "," PTR_FORMAT ")", + p2i(result), p2i(_whole_heap.start()), p2i(_whole_heap.end()))); + return result; + } +@@ -445,8 +445,8 @@ + // Mapping from address to card marking array index. + size_t index_for(void* p) { + assert(_whole_heap.contains(p), +- err_msg("Attempt to access p = "PTR_FORMAT" out of bounds of " +- " card marking array's _whole_heap = ["PTR_FORMAT","PTR_FORMAT")", ++ err_msg("Attempt to access p = " PTR_FORMAT " out of bounds of " ++ " card marking array's _whole_heap = [" PTR_FORMAT "," PTR_FORMAT ")", + p2i(p), p2i(_whole_heap.start()), p2i(_whole_heap.end()))); + return byte_for(p) - _byte_map; + } +--- hotspot/src/share/vm/memory/generation.hpp.orig 2015-09-02 09:45:31.000000000 +0200 ++++ hotspot/src/share/vm/memory/generation.hpp 2015-09-02 09:47:36.000000000 +0200 +@@ -422,7 +422,7 @@ + // have to guard against non-monotonicity. + NOT_PRODUCT( + if (now < _time_of_last_gc) { +- warning("time warp: "INT64_FORMAT" to "INT64_FORMAT, (int64_t)_time_of_last_gc, (int64_t)now); ++ warning("time warp: " INT64_FORMAT " to " INT64_FORMAT, (int64_t)_time_of_last_gc, (int64_t)now); + } + ) + return _time_of_last_gc; +--- hotspot/src/share/vm/memory/threadLocalAllocBuffer.inline.hpp.orig 2015-09-02 09:45:31.000000000 +0200 ++++ hotspot/src/share/vm/memory/threadLocalAllocBuffer.inline.hpp 2015-09-02 09:48:07.000000000 +0200 +@@ -94,10 +94,10 @@ + + if (PrintTLAB && Verbose) { + Thread* thrd = myThread(); +- gclog_or_tty->print("TLAB: %s thread: "INTPTR_FORMAT" [id: %2d]" +- " obj: "SIZE_FORMAT +- " free: "SIZE_FORMAT +- " waste: "SIZE_FORMAT"\n", ++ gclog_or_tty->print("TLAB: %s thread: " INTPTR_FORMAT " [id: %2d]" ++ " obj: " SIZE_FORMAT ++ " free: " SIZE_FORMAT ++ " waste: " SIZE_FORMAT "\n", + "slow", p2i(thrd), thrd->osthread()->thread_id(), + obj_size, free(), refill_waste_limit()); + } +--- hotspot/src/share/vm/trace/traceStream.hpp.orig 2015-09-02 09:45:31.000000000 +0200 ++++ hotspot/src/share/vm/trace/traceStream.hpp 2015-09-02 09:49:16.000000000 +0200 +@@ -40,31 +40,31 @@ + TraceStream(outputStream& stream): _st(stream) {} + + void print_val(const char* label, u1 val) { +- _st.print("%s = "UINT32_FORMAT, label, val); ++ _st.print("%s = " UINT32_FORMAT, label, val); + } + + void print_val(const char* label, u2 val) { +- _st.print("%s = "UINT32_FORMAT, label, val); ++ _st.print("%s = " UINT32_FORMAT, label, val); + } + + void print_val(const char* label, s2 val) { +- _st.print("%s = "INT32_FORMAT, label, val); ++ _st.print("%s = " INT32_FORMAT, label, val); + } + + void print_val(const char* label, u4 val) { +- _st.print("%s = "UINT32_FORMAT, label, val); ++ _st.print("%s = " UINT32_FORMAT, label, val); + } + + void print_val(const char* label, s4 val) { +- _st.print("%s = "INT32_FORMAT, label, val); ++ _st.print("%s = " INT32_FORMAT, label, val); + } + + void print_val(const char* label, u8 val) { +- _st.print("%s = "UINT64_FORMAT, label, val); ++ _st.print("%s = " UINT64_FORMAT, label, val); + } + + void print_val(const char* label, s8 val) { +- _st.print("%s = "INT64_FORMAT, label, (int64_t) val); ++ _st.print("%s = " INT64_FORMAT, label, (int64_t) val); + } + + void print_val(const char* label, bool val) { +--- hotspot/src/share/vm/gc_implementation/g1/heapRegionManager.inline.hpp.orig 2015-09-02 09:59:23.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/heapRegionManager.inline.hpp 2015-09-02 10:04:07.000000000 +0200 +@@ -31,9 +31,9 @@ + + inline HeapRegion* HeapRegionManager::addr_to_region(HeapWord* addr) const { + assert(addr < heap_end(), +- err_msg("addr: "PTR_FORMAT" end: "PTR_FORMAT, p2i(addr), p2i(heap_end()))); ++ err_msg("addr: " PTR_FORMAT " end: " PTR_FORMAT, p2i(addr), p2i(heap_end()))); + assert(addr >= heap_bottom(), +- err_msg("addr: "PTR_FORMAT" bottom: "PTR_FORMAT, p2i(addr), p2i(heap_bottom()))); ++ err_msg("addr: " PTR_FORMAT " bottom: " PTR_FORMAT, p2i(addr), p2i(heap_bottom()))); + + HeapRegion* hr = _regions.get_by_address(addr); + return hr; +--- hotspot/src/share/vm/gc_implementation/g1/heapRegion.inline.hpp.orig 2015-09-02 09:59:23.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/heapRegion.inline.hpp 2015-09-02 10:03:44.000000000 +0200 +@@ -112,7 +112,7 @@ + + assert(ClassUnloadingWithConcurrentMark, + err_msg("All blocks should be objects if G1 Class Unloading isn't used. " +- "HR: ["PTR_FORMAT", "PTR_FORMAT", "PTR_FORMAT") " ++ "HR: [" PTR_FORMAT ", " PTR_FORMAT ", " PTR_FORMAT ") " + "addr: " PTR_FORMAT, + p2i(bottom()), p2i(top()), p2i(end()), p2i(addr))); + +--- hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp.orig 2015-09-02 09:59:23.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp 2015-09-02 10:03:17.000000000 +0200 +@@ -52,7 +52,7 @@ + class HeapRegionSetBase; + class nmethod; + +-#define HR_FORMAT "%u:(%s)["PTR_FORMAT","PTR_FORMAT","PTR_FORMAT"]" ++#define HR_FORMAT "%u:(%s)[" PTR_FORMAT "," PTR_FORMAT "," PTR_FORMAT "]" + #define HR_FORMAT_PARAMS(_hr_) \ + (_hr_)->hrm_index(), \ + (_hr_)->get_short_type_str(), \ +@@ -542,8 +542,8 @@ + void set_containing_set(HeapRegionSetBase* containing_set) { + assert((containing_set == NULL && _containing_set != NULL) || + (containing_set != NULL && _containing_set == NULL), +- err_msg("containing_set: "PTR_FORMAT" " +- "_containing_set: "PTR_FORMAT, ++ err_msg("containing_set: " PTR_FORMAT " " ++ "_containing_set: " PTR_FORMAT, + p2i(containing_set), p2i(_containing_set))); + + _containing_set = containing_set; +--- hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp.orig 2015-09-02 09:59:23.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp 2015-09-02 10:02:55.000000000 +0200 +@@ -46,7 +46,7 @@ + + inline uint G1CollectedHeap::addr_to_region(HeapWord* addr) const { + assert(is_in_reserved(addr), +- err_msg("Cannot calculate region index for address "PTR_FORMAT" that is outside of the heap ["PTR_FORMAT", "PTR_FORMAT")", ++ err_msg("Cannot calculate region index for address " PTR_FORMAT " that is outside of the heap [" PTR_FORMAT ", " PTR_FORMAT ")", + p2i(addr), p2i(_reserved.start()), p2i(_reserved.end()))); + return (uint)(pointer_delta(addr, _reserved.start(), sizeof(uint8_t)) >> HeapRegion::LogOfHRGrainBytes); + } +@@ -59,7 +59,7 @@ + inline HeapRegion* G1CollectedHeap::heap_region_containing_raw(const T addr) const { + assert(addr != NULL, "invariant"); + assert(is_in_g1_reserved((const void*) addr), +- err_msg("Address "PTR_FORMAT" is outside of the heap ranging from ["PTR_FORMAT" to "PTR_FORMAT")", ++ err_msg("Address " PTR_FORMAT " is outside of the heap ranging from [" PTR_FORMAT " to " PTR_FORMAT ")", + p2i((void*)addr), p2i(g1_reserved().start()), p2i(g1_reserved().end()))); + return _hrm.addr_to_region((HeapWord*) addr); + } +--- hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp.orig 2015-09-02 09:59:22.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp 2015-09-02 10:01:43.000000000 +0200 +@@ -47,15 +47,15 @@ + } + } + +-#define check_index(index, msg) \ +- assert((index) < (_reserved.word_size() >> LogN_words), \ +- err_msg("%s - index: "SIZE_FORMAT", _vs.committed_size: "SIZE_FORMAT, \ +- msg, (index), (_reserved.word_size() >> LogN_words))); \ +- assert(G1CollectedHeap::heap()->is_in_exact(address_for_index_raw(index)), \ +- err_msg("Index "SIZE_FORMAT" corresponding to "PTR_FORMAT \ +- " (%u) is not in committed area.", \ +- (index), \ +- p2i(address_for_index_raw(index)), \ ++#define check_index(index, msg) \ ++ assert((index) < (_reserved.word_size() >> LogN_words), \ ++ err_msg("%s - index: " SIZE_FORMAT ", _vs.committed_size: " SIZE_FORMAT, \ ++ msg, (index), (_reserved.word_size() >> LogN_words))); \ ++ assert(G1CollectedHeap::heap()->is_in_exact(address_for_index_raw(index)), \ ++ err_msg("Index " SIZE_FORMAT " corresponding to " PTR_FORMAT \ ++ " (%u) is not in committed area.", \ ++ (index), \ ++ p2i(address_for_index_raw(index)), \ + G1CollectedHeap::heap()->addr_to_region(address_for_index_raw(index)))); + + u_char G1BlockOffsetSharedArray::offset_array(size_t index) const { +--- hotspot/src/share/vm/gc_implementation/g1/g1Allocator.hpp.orig 2015-09-02 09:59:22.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1Allocator.hpp 2015-09-02 10:00:36.000000000 +0200 +@@ -78,7 +78,7 @@ + + void decrease_used(size_t bytes) { + assert(_summary_bytes_used >= bytes, +- err_msg("invariant: _summary_bytes_used: "SIZE_FORMAT" should be >= bytes: "SIZE_FORMAT, ++ err_msg("invariant: _summary_bytes_used: " SIZE_FORMAT " should be >= bytes: " SIZE_FORMAT, + _summary_bytes_used, bytes)); + _summary_bytes_used -= bytes; + } +--- hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp.orig 2015-09-02 09:59:22.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp 2015-09-02 10:00:20.000000000 +0200 +@@ -92,7 +92,7 @@ + regions_at_put(_curr_index, NULL); + assert(hr->reclaimable_bytes() <= _remaining_reclaimable_bytes, + err_msg("remaining reclaimable bytes inconsistent " +- "from region: "SIZE_FORMAT" remaining: "SIZE_FORMAT, ++ "from region: " SIZE_FORMAT " remaining: " SIZE_FORMAT, + hr->reclaimable_bytes(), _remaining_reclaimable_bytes)); + _remaining_reclaimable_bytes -= hr->reclaimable_bytes(); + _curr_index += 1; +--- hotspot/src/share/vm/compiler/compileBroker.cpp.orig 2015-09-02 10:08:43.000000000 +0200 ++++ hotspot/src/share/vm/compiler/compileBroker.cpp 2015-09-02 10:09:37.000000000 +0200 +@@ -203,7 +203,7 @@ + } + + void log_nmethod(JavaThread* thread, nmethod* nm) { +- log(thread, "nmethod %d%s " INTPTR_FORMAT " code ["INTPTR_FORMAT ", " INTPTR_FORMAT "]", ++ log(thread, "nmethod %d%s " INTPTR_FORMAT " code [" INTPTR_FORMAT ", " INTPTR_FORMAT "]", + nm->compile_id(), nm->is_osr_method() ? "%" : "", + p2i(nm), p2i(nm->code_begin()), p2i(nm->code_end())); + } +--- hotspot/src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp.orig 2015-09-02 10:08:44.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp 2015-09-02 10:09:56.000000000 +0200 +@@ -121,15 +121,15 @@ + // Single parameter format strings + #define ergo_format_str(_name_) ", " _name_ ": %s" + #define ergo_format_region(_name_) ", " _name_ ": %u regions" +-#define ergo_format_byte(_name_) ", " _name_ ": "SIZE_FORMAT" bytes" ++#define ergo_format_byte(_name_) ", " _name_ ": " SIZE_FORMAT " bytes" + #define ergo_format_double(_name_) ", " _name_ ": %1.2f" + #define ergo_format_perc(_name_) ", " _name_ ": %1.2f %%" + #define ergo_format_ms(_name_) ", " _name_ ": %1.2f ms" +-#define ergo_format_size(_name_) ", " _name_ ": "SIZE_FORMAT ++#define ergo_format_size(_name_) ", " _name_ ": " SIZE_FORMAT + + // Double parameter format strings + #define ergo_format_byte_perc(_name_) \ +- ", " _name_ ": "SIZE_FORMAT" bytes (%1.2f %%)" ++ ", " _name_ ": " SIZE_FORMAT " bytes (%1.2f %%)" + + // Generates the format string + #define ergo_format(_extra_format_) \ +--- hotspot/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp.orig 2015-09-02 10:12:49.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp 2015-09-02 10:21:24.000000000 +0200 +@@ -196,8 +196,8 @@ + assert(_bmStartWord <= (addr) && (addr) < (_bmStartWord + _bmWordSize), \ + "outside underlying space?"); \ + assert(G1CollectedHeap::heap()->is_in_exact(addr), \ +- err_msg("Trying to access not available bitmap "PTR_FORMAT \ +- " corresponding to "PTR_FORMAT" (%u)", \ ++ err_msg("Trying to access not available bitmap " PTR_FORMAT \ ++ " corresponding to " PTR_FORMAT " (%u)", \ + p2i(this), p2i(addr), G1CollectedHeap::heap()->addr_to_region(addr))); + + inline void CMBitMap::mark(HeapWord* addr) { +@@ -270,7 +270,7 @@ + + inline void CMTask::deal_with_reference(oop obj) { + if (_cm->verbose_high()) { +- gclog_or_tty->print_cr("[%u] we're dealing with reference = "PTR_FORMAT, ++ gclog_or_tty->print_cr("[%u] we're dealing with reference = " PTR_FORMAT, + _worker_id, p2i((void*) obj)); + } + +@@ -374,7 +374,7 @@ + // assert that word_size is under an upper bound which is its + // containing region's capacity. + assert(word_size * HeapWordSize <= hr->capacity(), +- err_msg("size: "SIZE_FORMAT" capacity: "SIZE_FORMAT" "HR_FORMAT, ++ err_msg("size: " SIZE_FORMAT " capacity: " SIZE_FORMAT " " HR_FORMAT, + word_size * HeapWordSize, hr->capacity(), + HR_FORMAT_PARAMS(hr))); + +--- hotspot/src/share/vm/gc_implementation/g1/g1CardCounts.hpp.orig 2015-09-02 10:12:49.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1CardCounts.hpp 2015-09-02 10:21:38.000000000 +0200 +@@ -91,7 +91,7 @@ + + jbyte* card_num_2_ptr(size_t card_num) { + assert(card_num >= 0 && card_num < _reserved_max_card_num, +- err_msg("card num out of range: "SIZE_FORMAT, card_num)); ++ err_msg("card num out of range: " SIZE_FORMAT, card_num)); + return (jbyte*) (_ct_bot + card_num); + } + +--- hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp.orig 2015-09-02 10:24:04.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp 2015-09-02 10:24:14.000000000 +0200 +@@ -118,7 +118,7 @@ + oop obj = oopDesc::load_decode_heap_oop(p); + if (_cm->verbose_high()) { + gclog_or_tty->print_cr("[%u] we're looking at location " +- "*"PTR_FORMAT" = "PTR_FORMAT, ++ "*" PTR_FORMAT " = " PTR_FORMAT, + _task->worker_id(), p2i(p), p2i((void*) obj)); + } + _task->deal_with_reference(obj); +--- hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.orig 2015-09-06 14:02:06.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2015-09-10 12:03:16.130020385 +0200 +@@ -284,7 +284,7 @@ + if (PrintGCDetails && Verbose) { + // Failed to double capacity, continue; + gclog_or_tty->print(" (benign) Failed to expand marking stack capacity from " +- SIZE_FORMAT"K to " SIZE_FORMAT"K", ++ SIZE_FORMAT "K to " SIZE_FORMAT "K", + _capacity / K, new_capacity / K); + } + } +@@ -581,7 +581,7 @@ + _verbose_level = verbose_level; + + if (verbose_low()) { +- gclog_or_tty->print_cr("[global] init, heap start = "PTR_FORMAT", " ++ gclog_or_tty->print_cr("[global] init, heap start = " PTR_FORMAT ", " + "heap end = " INTPTR_FORMAT, p2i(_heap_start), p2i(_heap_end)); + } + +@@ -838,7 +838,7 @@ + // in a STW phase. + assert(!concurrent_marking_in_progress(), "invariant"); + assert(out_of_regions(), +- err_msg("only way to get here: _finger: "PTR_FORMAT", _heap_end: "PTR_FORMAT, ++ err_msg("only way to get here: _finger: " PTR_FORMAT ", _heap_end: " PTR_FORMAT, + p2i(_finger), p2i(_heap_end))); + } + } +@@ -1453,7 +1453,7 @@ + + assert(start <= hr->end() && start <= ntams && ntams <= hr->end(), + err_msg("Preconditions not met - " +- "start: "PTR_FORMAT", ntams: "PTR_FORMAT", end: "PTR_FORMAT, ++ "start: " PTR_FORMAT ", ntams: " PTR_FORMAT ", end: " PTR_FORMAT, + p2i(start), p2i(ntams), p2i(hr->end()))); + + // Find the first marked object at or after "start". +@@ -1770,10 +1770,10 @@ + } + + assert(end_idx <= _card_bm->size(), +- err_msg("oob: end_idx= "SIZE_FORMAT", bitmap size= "SIZE_FORMAT, ++ err_msg("oob: end_idx= " SIZE_FORMAT ", bitmap size= " SIZE_FORMAT, + end_idx, _card_bm->size())); + assert(start_idx < _card_bm->size(), +- err_msg("oob: start_idx= "SIZE_FORMAT", bitmap size= "SIZE_FORMAT, ++ err_msg("oob: start_idx= " SIZE_FORMAT ", bitmap size= " SIZE_FORMAT, + start_idx, _card_bm->size())); + + _cm->set_card_bitmap_range(_card_bm, start_idx, end_idx, true /* is_par */); +@@ -2278,7 +2278,7 @@ + oop obj = oopDesc::load_decode_heap_oop(p); + if (_cm->verbose_high()) { + gclog_or_tty->print_cr("\t[%u] we're looking at location " +- "*"PTR_FORMAT" = "PTR_FORMAT, ++ "*" PTR_FORMAT " = " PTR_FORMAT, + _task->worker_id(), p2i(p), p2i((void*) obj)); + } + +@@ -2847,7 +2847,7 @@ + } + } + +- _out->print_cr(" "PTR_FORMAT": "PTR_FORMAT"%s%s", ++ _out->print_cr(" " PTR_FORMAT ": " PTR_FORMAT "%s%s", + p2i(p), p2i((void*) obj), str, str2); + } + }; +@@ -2874,7 +2874,7 @@ + bool print_it = _all || over_tams || marked; + + if (print_it) { +- _out->print_cr(" "PTR_FORMAT"%s", ++ _out->print_cr(" " PTR_FORMAT "%s", + p2i((void *)o), (over_tams) ? " >" : (marked) ? " M" : ""); + PrintReachableOopClosure oopCl(_out, _vo, _all); + o->oop_iterate_no_header(&oopCl); +@@ -2895,7 +2895,7 @@ + HeapWord* e = hr->end(); + HeapWord* t = hr->top(); + HeapWord* p = _g1h->top_at_mark_start(hr, _vo); +- _out->print_cr("** ["PTR_FORMAT", "PTR_FORMAT"] top: "PTR_FORMAT" " ++ _out->print_cr("** [" PTR_FORMAT ", " PTR_FORMAT "] top: " PTR_FORMAT " " + "TAMS: " PTR_FORMAT, p2i(b), p2i(e), p2i(t), p2i(p)); + _out->cr(); + +@@ -3019,9 +3019,9 @@ + HeapWord* limit = curr_region->next_top_at_mark_start(); + + if (verbose_low()) { +- gclog_or_tty->print_cr("[%u] curr_region = "PTR_FORMAT" " +- "["PTR_FORMAT", "PTR_FORMAT"), " +- "limit = "PTR_FORMAT, ++ gclog_or_tty->print_cr("[%u] curr_region = " PTR_FORMAT " " ++ "[" PTR_FORMAT ", " PTR_FORMAT "), " ++ "limit = " PTR_FORMAT, + worker_id, p2i(curr_region), p2i(bottom), p2i(end), p2i(limit)); + } + +@@ -3036,7 +3036,7 @@ + + if (limit > bottom) { + if (verbose_low()) { +- gclog_or_tty->print_cr("[%u] region "PTR_FORMAT" is not empty, " ++ gclog_or_tty->print_cr("[%u] region " PTR_FORMAT " is not empty, " + "returning it ", worker_id, p2i(curr_region)); + } + return curr_region; +@@ -3044,7 +3044,7 @@ + assert(limit == bottom, + "the region limit should be at bottom"); + if (verbose_low()) { +- gclog_or_tty->print_cr("[%u] region "PTR_FORMAT" is empty, " ++ gclog_or_tty->print_cr("[%u] region " PTR_FORMAT " is empty, " + "returning NULL", worker_id, p2i(curr_region)); + } + // we return NULL and the caller should try calling +@@ -3056,13 +3056,13 @@ + if (verbose_low()) { + if (curr_region == NULL) { + gclog_or_tty->print_cr("[%u] found uncommitted region, moving finger, " +- "global finger = "PTR_FORMAT", " +- "our finger = "PTR_FORMAT, ++ "global finger = " PTR_FORMAT ", " ++ "our finger = " PTR_FORMAT, + worker_id, p2i(_finger), p2i(finger)); + } else { + gclog_or_tty->print_cr("[%u] somebody else moved the finger, " +- "global finger = "PTR_FORMAT", " +- "our finger = "PTR_FORMAT, ++ "global finger = " PTR_FORMAT ", " ++ "our finger = " PTR_FORMAT, + worker_id, p2i(_finger), p2i(finger)); + } + } +@@ -3098,7 +3098,7 @@ + + void do_object_work(oop obj) { + guarantee(!_g1h->obj_in_cs(obj), +- err_msg("obj: "PTR_FORMAT" in CSet, phase: %s, info: %d", ++ err_msg("obj: " PTR_FORMAT " in CSet, phase: %s, info: %d", + p2i((void*) obj), phase_str(), _info)); + } + +@@ -3159,7 +3159,7 @@ + // here. + HeapRegion* global_hr = _g1h->heap_region_containing_raw(global_finger); + guarantee(global_hr == NULL || global_finger == global_hr->bottom(), +- err_msg("global finger: "PTR_FORMAT" region: "HR_FORMAT, ++ err_msg("global finger: " PTR_FORMAT " region: " HR_FORMAT, + p2i(global_finger), HR_FORMAT_PARAMS(global_hr))); + } + +@@ -3173,7 +3173,7 @@ + HeapRegion* task_hr = _g1h->heap_region_containing_raw(task_finger); + guarantee(task_hr == NULL || task_finger == task_hr->bottom() || + !task_hr->in_collection_set(), +- err_msg("task finger: "PTR_FORMAT" region: "HR_FORMAT, ++ err_msg("task finger: " PTR_FORMAT " region: " HR_FORMAT, + p2i(task_finger), HR_FORMAT_PARAMS(task_hr))); + } + } +@@ -3215,8 +3215,8 @@ + + assert(start <= limit && limit <= hr->top() && hr->top() <= hr->end(), + err_msg("Preconditions not met - " +- "start: "PTR_FORMAT", limit: "PTR_FORMAT", " +- "top: "PTR_FORMAT", end: "PTR_FORMAT, ++ "start: " PTR_FORMAT ", limit: " PTR_FORMAT ", " ++ "top: " PTR_FORMAT ", end: " PTR_FORMAT, + p2i(start), p2i(limit), p2i(hr->top()), p2i(hr->end()))); + + assert(hr->next_marked_bytes() == 0, "Precondition"); +@@ -3495,7 +3495,7 @@ + #ifndef PRODUCT + // for debugging purposes + void ConcurrentMark::print_finger() { +- gclog_or_tty->print_cr("heap ["PTR_FORMAT", "PTR_FORMAT"), global finger = "PTR_FORMAT, ++ gclog_or_tty->print_cr("heap [" PTR_FORMAT ", " PTR_FORMAT "), global finger = " PTR_FORMAT, + p2i(_heap_start), p2i(_heap_end), p2i(_finger)); + for (uint i = 0; i < _max_worker_id; ++i) { + gclog_or_tty->print(" %u: " PTR_FORMAT, i, p2i(_tasks[i]->finger())); +@@ -3580,7 +3580,7 @@ + "claim_region() should have filtered out continues humongous regions"); + + if (_cm->verbose_low()) { +- gclog_or_tty->print_cr("[%u] setting up for region "PTR_FORMAT, ++ gclog_or_tty->print_cr("[%u] setting up for region " PTR_FORMAT, + _worker_id, p2i(hr)); + } + +@@ -3597,7 +3597,7 @@ + if (limit == bottom) { + if (_cm->verbose_low()) { + gclog_or_tty->print_cr("[%u] found an empty region " +- "["PTR_FORMAT", "PTR_FORMAT")", ++ "[" PTR_FORMAT ", " PTR_FORMAT ")", + _worker_id, p2i(bottom), p2i(limit)); + } + // The region was collected underneath our feet. +@@ -3629,7 +3629,7 @@ + void CMTask::giveup_current_region() { + assert(_curr_region != NULL, "invariant"); + if (_cm->verbose_low()) { +- gclog_or_tty->print_cr("[%u] giving up region "PTR_FORMAT, ++ gclog_or_tty->print_cr("[%u] giving up region " PTR_FORMAT, + _worker_id, p2i(_curr_region)); + } + clear_region_fields(); +@@ -3751,7 +3751,7 @@ + + if (_cm->verbose_medium()) { + gclog_or_tty->print_cr("[%u] regular clock, interval = %1.2lfms, " +- "scanned = "SIZE_FORMAT"%s, refs reached = "SIZE_FORMAT"%s", ++ "scanned = " SIZE_FORMAT "%s, refs reached = " SIZE_FORMAT "%s", + _worker_id, last_interval_ms, + _words_scanned, + (_words_scanned >= _words_scanned_limit) ? " (*)" : "", +@@ -3920,7 +3920,7 @@ + statsOnly( ++_local_pops ); + + if (_cm->verbose_high()) { +- gclog_or_tty->print_cr("[%u] popped "PTR_FORMAT, _worker_id, ++ gclog_or_tty->print_cr("[%u] popped " PTR_FORMAT, _worker_id, + p2i((void*) obj)); + } + +@@ -4273,8 +4273,8 @@ + + if (_cm->verbose_low()) { + gclog_or_tty->print_cr("[%u] we're scanning part " +- "["PTR_FORMAT", "PTR_FORMAT") " +- "of region "HR_FORMAT, ++ "[" PTR_FORMAT ", " PTR_FORMAT ") " ++ "of region " HR_FORMAT, + _worker_id, p2i(_finger), p2i(_region_limit), + HR_FORMAT_PARAMS(_curr_region)); + } +@@ -4361,7 +4361,7 @@ + + if (_cm->verbose_low()) { + gclog_or_tty->print_cr("[%u] we successfully claimed " +- "region "PTR_FORMAT, ++ "region " PTR_FORMAT, + _worker_id, p2i(claimed_region)); + } + +@@ -4422,7 +4422,7 @@ + + if (_cm->try_stealing(_worker_id, &_hash_seed, obj)) { + if (_cm->verbose_medium()) { +- gclog_or_tty->print_cr("[%u] stolen "PTR_FORMAT" successfully", ++ gclog_or_tty->print_cr("[%u] stolen " PTR_FORMAT " successfully", + _worker_id, p2i((void*) obj)); + } + +@@ -4630,7 +4630,7 @@ + // identify them easily in a large log file. + #define G1PPRL_LINE_PREFIX "###" + +-#define G1PPRL_ADDR_BASE_FORMAT " "PTR_FORMAT"-"PTR_FORMAT ++#define G1PPRL_ADDR_BASE_FORMAT " " PTR_FORMAT "-" PTR_FORMAT + #ifdef _LP64 + #define G1PPRL_ADDR_BASE_H_FORMAT " %37s" + #else // _LP64 +@@ -4640,16 +4640,16 @@ + // For per-region info + #define G1PPRL_TYPE_FORMAT " %-4s" + #define G1PPRL_TYPE_H_FORMAT " %4s" +-#define G1PPRL_BYTE_FORMAT " "SIZE_FORMAT_W(9) ++#define G1PPRL_BYTE_FORMAT " " SIZE_FORMAT_W(9) + #define G1PPRL_BYTE_H_FORMAT " %9s" + #define G1PPRL_DOUBLE_FORMAT " %14.1f" + #define G1PPRL_DOUBLE_H_FORMAT " %14s" + + // For summary info +-#define G1PPRL_SUM_ADDR_FORMAT(tag) " "tag":"G1PPRL_ADDR_BASE_FORMAT +-#define G1PPRL_SUM_BYTE_FORMAT(tag) " "tag": "SIZE_FORMAT +-#define G1PPRL_SUM_MB_FORMAT(tag) " "tag": %1.2f MB" +-#define G1PPRL_SUM_MB_PERC_FORMAT(tag) G1PPRL_SUM_MB_FORMAT(tag)" / %1.2f %%" ++#define G1PPRL_SUM_ADDR_FORMAT(tag) " " tag ":" G1PPRL_ADDR_BASE_FORMAT ++#define G1PPRL_SUM_BYTE_FORMAT(tag) " " tag ": " SIZE_FORMAT ++#define G1PPRL_SUM_MB_FORMAT(tag) " " tag ": %1.2f MB" ++#define G1PPRL_SUM_MB_PERC_FORMAT(tag) G1PPRL_SUM_MB_FORMAT(tag) " / %1.2f %%" + + G1PrintRegionLivenessInfoClosure:: + G1PrintRegionLivenessInfoClosure(outputStream* out, const char* phase_name) +--- hotspot/src/share/vm/oops/constantPool.cpp.orig 2015-09-02 10:35:07.000000000 +0200 ++++ hotspot/src/share/vm/oops/constantPool.cpp 2015-09-02 10:36:03.000000000 +0200 +@@ -1494,7 +1494,7 @@ + } + case JVM_CONSTANT_Long: { + u8 val = Bytes::get_Java_u8(bytes); +- printf("long "INT64_FORMAT, (int64_t) *(jlong *) &val); ++ printf("long " INT64_FORMAT, (int64_t) *(jlong *) &val); + ent_size = 8; + idx++; // Long takes two cpool slots + break; +--- hotspot/src/share/vm/oops/cpCache.cpp.orig 2015-09-02 10:35:13.000000000 +0200 ++++ hotspot/src/share/vm/oops/cpCache.cpp 2015-09-02 10:36:48.000000000 +0200 +@@ -305,7 +305,7 @@ + adapter->size_of_parameters()); + + if (TraceInvokeDynamic) { +- tty->print_cr("set_method_handle bc=%d appendix="PTR_FORMAT"%s method_type="PTR_FORMAT"%s method="PTR_FORMAT" ", ++ tty->print_cr("set_method_handle bc=%d appendix=" PTR_FORMAT "%s method_type=" PTR_FORMAT "%s method=" PTR_FORMAT " ", + invoke_code, + (void *)appendix(), (has_appendix ? "" : " (unused)"), + (void *)method_type(), (has_method_type ? "" : " (unused)"), +@@ -540,12 +540,12 @@ + // print separator + if (index == 0) st->print_cr(" -------------"); + // print entry +- st->print("%3d ("PTR_FORMAT") ", index, (intptr_t)this); ++ st->print("%3d (" PTR_FORMAT ") ", index, (intptr_t)this); + st->print_cr("[%02x|%02x|%5d]", bytecode_2(), bytecode_1(), + constant_pool_index()); +- st->print_cr(" [ "PTR_FORMAT"]", (intptr_t)_f1); +- st->print_cr(" [ "PTR_FORMAT"]", (intptr_t)_f2); +- st->print_cr(" [ "PTR_FORMAT"]", (intptr_t)_flags); ++ st->print_cr(" [ " PTR_FORMAT "]", (intptr_t)_f1); ++ st->print_cr(" [ " PTR_FORMAT "]", (intptr_t)_f2); ++ st->print_cr(" [ " PTR_FORMAT "]", (intptr_t)_flags); + st->print_cr(" -------------"); + } + +--- hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.orig 2015-09-02 10:12:48.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2015-09-02 10:39:26.000000000 +0200 +@@ -838,18 +838,18 @@ + GenCollectedHeap* gch = GenCollectedHeap::heap(); + if (PrintGCDetails) { + if (Verbose) { +- gclog_or_tty->print("[%d %s-%s: "SIZE_FORMAT"("SIZE_FORMAT")]", ++ gclog_or_tty->print("[%d %s-%s: " SIZE_FORMAT "(" SIZE_FORMAT ")]", + level(), short_name(), s, used(), capacity()); + } else { +- gclog_or_tty->print("[%d %s-%s: "SIZE_FORMAT"K("SIZE_FORMAT"K)]", ++ gclog_or_tty->print("[%d %s-%s: " SIZE_FORMAT "K(" SIZE_FORMAT "K)]", + level(), short_name(), s, used() / K, capacity() / K); + } + } + if (Verbose) { +- gclog_or_tty->print(" "SIZE_FORMAT"("SIZE_FORMAT")", ++ gclog_or_tty->print(" " SIZE_FORMAT "(" SIZE_FORMAT ")", + gch->used(), gch->capacity()); + } else { +- gclog_or_tty->print(" "SIZE_FORMAT"K("SIZE_FORMAT"K)", ++ gclog_or_tty->print(" " SIZE_FORMAT "K(" SIZE_FORMAT "K)", + gch->used() / K, gch->capacity() / K); + } + } +@@ -879,8 +879,8 @@ + bool res = (available >= av_promo) || (available >= max_promotion_in_bytes); + if (Verbose && PrintGCDetails) { + gclog_or_tty->print_cr( +- "CMS: promo attempt is%s safe: available("SIZE_FORMAT") %s av_promo("SIZE_FORMAT")," +- "max_promo("SIZE_FORMAT")", ++ "CMS: promo attempt is%s safe: available(" SIZE_FORMAT ") %s av_promo(" SIZE_FORMAT ")," ++ "max_promo(" SIZE_FORMAT ")", + res? "":" not", available, res? ">=":"<", + av_promo, max_promotion_in_bytes); + } +@@ -966,8 +966,8 @@ + desired_free_percentage); + gclog_or_tty->print_cr(" Maximum free fraction %f", + maximum_free_percentage); +- gclog_or_tty->print_cr(" Capactiy "SIZE_FORMAT, capacity()/1000); +- gclog_or_tty->print_cr(" Desired capacity "SIZE_FORMAT, ++ gclog_or_tty->print_cr(" Capactiy " SIZE_FORMAT, capacity()/1000); ++ gclog_or_tty->print_cr(" Desired capacity " SIZE_FORMAT, + desired_capacity/1000); + int prev_level = level() - 1; + if (prev_level >= 0) { +@@ -975,14 +975,14 @@ + GenCollectedHeap* gch = GenCollectedHeap::heap(); + Generation* prev_gen = gch->_gens[prev_level]; + prev_size = prev_gen->capacity(); +- gclog_or_tty->print_cr(" Younger gen size "SIZE_FORMAT, ++ gclog_or_tty->print_cr(" Younger gen size " SIZE_FORMAT, + prev_size/1000); + } +- gclog_or_tty->print_cr(" unsafe_max_alloc_nogc "SIZE_FORMAT, ++ gclog_or_tty->print_cr(" unsafe_max_alloc_nogc " SIZE_FORMAT, + unsafe_max_alloc_nogc()/1000); +- gclog_or_tty->print_cr(" contiguous available "SIZE_FORMAT, ++ gclog_or_tty->print_cr(" contiguous available " SIZE_FORMAT, + contiguous_available()/1000); +- gclog_or_tty->print_cr(" Expand by "SIZE_FORMAT" (bytes)", ++ gclog_or_tty->print_cr(" Expand by " SIZE_FORMAT " (bytes)", + expand_bytes); + } + // safe if expansion fails +@@ -1513,8 +1513,8 @@ + stats().print_on(gclog_or_tty); + gclog_or_tty->print_cr("time_until_cms_gen_full %3.7f", + stats().time_until_cms_gen_full()); +- gclog_or_tty->print_cr("free="SIZE_FORMAT, _cmsGen->free()); +- gclog_or_tty->print_cr("contiguous_available="SIZE_FORMAT, ++ gclog_or_tty->print_cr("free=" SIZE_FORMAT, _cmsGen->free()); ++ gclog_or_tty->print_cr("contiguous_available=" SIZE_FORMAT, + _cmsGen->contiguous_available()); + gclog_or_tty->print_cr("promotion_rate=%g", stats().promotion_rate()); + gclog_or_tty->print_cr("cms_allocation_rate=%g", stats().cms_allocation_rate()); +@@ -2792,7 +2792,7 @@ + assert(_numObjectsPromoted == 0, "check"); + assert(_numWordsPromoted == 0, "check"); + if (Verbose && PrintGC) { +- gclog_or_tty->print("Allocated "SIZE_FORMAT" objects, " ++ gclog_or_tty->print("Allocated " SIZE_FORMAT " objects, " + SIZE_FORMAT" bytes concurrently", + _numObjectsAllocated, _numWordsAllocated*sizeof(HeapWord)); + } +@@ -2879,7 +2879,7 @@ + assert(_numObjectsAllocated == 0, "check"); + assert(_numWordsAllocated == 0, "check"); + if (Verbose && PrintGC) { +- gclog_or_tty->print("Promoted "SIZE_FORMAT" objects, " ++ gclog_or_tty->print("Promoted " SIZE_FORMAT " objects, " + SIZE_FORMAT" bytes", + _numObjectsPromoted, _numWordsPromoted*sizeof(HeapWord)); + } +@@ -2890,7 +2890,7 @@ + if (PrintGC && Verbose) { + // Call down the chain in contiguous_available needs the freelistLock + // so print this out before releasing the freeListLock. +- gclog_or_tty->print(" Contiguous available "SIZE_FORMAT" bytes ", ++ gclog_or_tty->print(" Contiguous available " SIZE_FORMAT " bytes ", + contiguous_available()); + } + } +@@ -2978,7 +2978,7 @@ + HeapWord* addr = _marks->offsetToHeapWord(offset); + if (!_marks->isMarked(addr)) { + oop(addr)->print_on(gclog_or_tty); +- gclog_or_tty->print_cr(" ("INTPTR_FORMAT" should have been marked)", addr); ++ gclog_or_tty->print_cr(" (" INTPTR_FORMAT " should have been marked)", addr); + _failed = true; + } + return true; +@@ -5037,7 +5037,7 @@ + + SpecializationStats::clear(); + if (PrintGCDetails) { +- gclog_or_tty->print("[YG occupancy: "SIZE_FORMAT" K ("SIZE_FORMAT" K)]", ++ gclog_or_tty->print("[YG occupancy: " SIZE_FORMAT " K (" SIZE_FORMAT " K)]", + _young_gen->used() / K, + _young_gen->capacity() / K); + } +@@ -5170,8 +5170,8 @@ + if (ser_ovflw > 0) { + if (PrintCMSStatistics != 0) { + gclog_or_tty->print_cr("Marking stack overflow (benign) " +- "(pmc_pc="SIZE_FORMAT", pmc_rm="SIZE_FORMAT", kac="SIZE_FORMAT +- ", kac_preclean="SIZE_FORMAT")", ++ "(pmc_pc=" SIZE_FORMAT ", pmc_rm=" SIZE_FORMAT ", kac=" SIZE_FORMAT ++ ", kac_preclean=" SIZE_FORMAT ")", + _ser_pmc_preclean_ovflw, _ser_pmc_remark_ovflw, + _ser_kac_ovflw, _ser_kac_preclean_ovflw); + } +@@ -5184,7 +5184,7 @@ + if (_par_pmc_remark_ovflw > 0 || _par_kac_ovflw > 0) { + if (PrintCMSStatistics != 0) { + gclog_or_tty->print_cr("Work queue overflow (benign) " +- "(pmc_rm="SIZE_FORMAT", kac="SIZE_FORMAT")", ++ "(pmc_rm=" SIZE_FORMAT ", kac=" SIZE_FORMAT ")", + _par_pmc_remark_ovflw, _par_kac_ovflw); + } + _par_pmc_remark_ovflw = 0; +@@ -5192,12 +5192,12 @@ + } + if (PrintCMSStatistics != 0) { + if (_markStack._hit_limit > 0) { +- gclog_or_tty->print_cr(" (benign) Hit max stack size limit ("SIZE_FORMAT")", ++ gclog_or_tty->print_cr(" (benign) Hit max stack size limit (" SIZE_FORMAT ")", + _markStack._hit_limit); + } + if (_markStack._failed_double > 0) { +- gclog_or_tty->print_cr(" (benign) Failed stack doubling ("SIZE_FORMAT")," +- " current capacity "SIZE_FORMAT, ++ gclog_or_tty->print_cr(" (benign) Failed stack doubling (" SIZE_FORMAT ")," ++ " current capacity " SIZE_FORMAT, + _markStack._failed_double, + _markStack.capacity()); + } +@@ -5961,7 +5961,7 @@ + &markFromDirtyCardsClosure); + verify_work_stacks_empty(); + if (PrintCMSStatistics != 0) { +- gclog_or_tty->print(" (re-scanned "SIZE_FORMAT" dirty cards in cms gen) ", ++ gclog_or_tty->print(" (re-scanned " SIZE_FORMAT " dirty cards in cms gen) ", + markFromDirtyCardsClosure.num_dirty_cards()); + } + } +@@ -6892,7 +6892,7 @@ + } else if (_failed_double++ == 0 && !CMSConcurrentMTEnabled && PrintGCDetails) { + // Failed to double capacity, continue; + // we print a detail message only once per CMS cycle. +- gclog_or_tty->print(" (benign) Failed to expand marking stack from "SIZE_FORMAT"K to " ++ gclog_or_tty->print(" (benign) Failed to expand marking stack from " SIZE_FORMAT "K to " + SIZE_FORMAT"K", + _capacity / K, new_capacity / K); + } +@@ -8215,25 +8215,25 @@ + ShouldNotReachHere(); + } + if (Verbose && PrintGC) { +- gclog_or_tty->print("Collected "SIZE_FORMAT" objects, " SIZE_FORMAT " bytes", ++ gclog_or_tty->print("Collected " SIZE_FORMAT " objects, " SIZE_FORMAT " bytes", + _numObjectsFreed, _numWordsFreed*sizeof(HeapWord)); +- gclog_or_tty->print_cr("\nLive "SIZE_FORMAT" objects, " ++ gclog_or_tty->print_cr("\nLive " SIZE_FORMAT " objects, " + SIZE_FORMAT" bytes " +- "Already free "SIZE_FORMAT" objects, "SIZE_FORMAT" bytes", ++ "Already free " SIZE_FORMAT " objects, " SIZE_FORMAT " bytes", + _numObjectsLive, _numWordsLive*sizeof(HeapWord), + _numObjectsAlreadyFree, _numWordsAlreadyFree*sizeof(HeapWord)); + size_t totalBytes = (_numWordsFreed + _numWordsLive + _numWordsAlreadyFree) + * sizeof(HeapWord); +- gclog_or_tty->print_cr("Total sweep: "SIZE_FORMAT" bytes", totalBytes); ++ gclog_or_tty->print_cr("Total sweep: " SIZE_FORMAT " bytes", totalBytes); + + if (PrintCMSStatistics && CMSVerifyReturnedBytes) { + size_t indexListReturnedBytes = _sp->sumIndexedFreeListArrayReturnedBytes(); + size_t dict_returned_bytes = _sp->dictionary()->sum_dict_returned_bytes(); + size_t returned_bytes = indexListReturnedBytes + dict_returned_bytes; +- gclog_or_tty->print("Returned "SIZE_FORMAT" bytes", returned_bytes); +- gclog_or_tty->print(" Indexed List Returned "SIZE_FORMAT" bytes", ++ gclog_or_tty->print("Returned " SIZE_FORMAT " bytes", returned_bytes); ++ gclog_or_tty->print(" Indexed List Returned " SIZE_FORMAT " bytes", + indexListReturnedBytes); +- gclog_or_tty->print_cr(" Dictionary Returned "SIZE_FORMAT" bytes", ++ gclog_or_tty->print_cr(" Dictionary Returned " SIZE_FORMAT " bytes", + dict_returned_bytes); + } + } +@@ -8312,13 +8312,13 @@ + // coalesced chunk to the appropriate free list. + if (inFreeRange()) { + assert(freeFinger() >= _sp->bottom() && freeFinger() < _limit, +- err_msg("freeFinger() " PTR_FORMAT" is out-of-bounds", freeFinger())); ++ err_msg("freeFinger() " PTR_FORMAT " is out-of-bounds", freeFinger())); + flush_cur_free_chunk(freeFinger(), + pointer_delta(addr, freeFinger())); + if (CMSTraceSweeper) { + gclog_or_tty->print("Sweep: last chunk: "); +- gclog_or_tty->print("put_free_blk 0x%x ("SIZE_FORMAT") " +- "[coalesced:"SIZE_FORMAT"]\n", ++ gclog_or_tty->print("put_free_blk 0x%x (" SIZE_FORMAT ") " ++ "[coalesced:" SIZE_FORMAT "]\n", + freeFinger(), pointer_delta(addr, freeFinger()), + lastFreeRangeCoalesced()); + } +--- hotspot/src/share/vm/classfile/dictionary.hpp.orig 2015-09-02 10:40:01.000000000 +0200 ++++ hotspot/src/share/vm/classfile/dictionary.hpp 2015-09-02 10:40:32.000000000 +0200 +@@ -370,7 +370,7 @@ + + void print_on(outputStream* st) const { + symbol()->print_value_on(st); +- st->print("/mode="INTX_FORMAT, symbol_mode()); ++ st->print("/mode=" INTX_FORMAT, symbol_mode()); + st->print(" -> "); + bool printed = false; + if (method() != NULL) { +--- hotspot/src/share/vm/compiler/disassembler.cpp.orig 2015-09-02 10:40:09.000000000 +0200 ++++ hotspot/src/share/vm/compiler/disassembler.cpp 2015-09-02 10:41:33.000000000 +0200 +@@ -60,7 +60,7 @@ + Disassembler::decode_func_virtual Disassembler::_decode_instructions_virtual = NULL; + Disassembler::decode_func Disassembler::_decode_instructions = NULL; + +-static const char hsdis_library_name[] = "hsdis-"HOTSPOT_LIB_ARCH; ++static const char hsdis_library_name[] = "hsdis-" HOTSPOT_LIB_ARCH; + static const char decode_instructions_virtual_name[] = "decode_instructions_virtual"; + static const char decode_instructions_name[] = "decode_instructions"; + static bool use_new_version = true; +--- hotspot/src/share/vm/code/exceptionHandlerTable.cpp.orig 2015-09-02 10:44:06.000000000 +0200 ++++ hotspot/src/share/vm/code/exceptionHandlerTable.cpp 2015-09-02 10:44:32.000000000 +0200 +@@ -186,7 +186,7 @@ + void ImplicitExceptionTable::print(address base) const { + tty->print("{"); + for( uint i=0; iprint("< "INTPTR_FORMAT", "INTPTR_FORMAT" > ",base + *adr(i), base + *(adr(i)+1)); ++ tty->print("< " INTPTR_FORMAT ", " INTPTR_FORMAT " > ",base + *adr(i), base + *(adr(i)+1)); + tty->print_cr("}"); + } + +--- hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.cpp.orig 2015-09-02 10:47:14.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.cpp 2015-09-02 10:47:49.000000000 +0200 +@@ -140,7 +140,7 @@ + } + + void G1AllocRegion::fill_in_ext_msg(ar_ext_msg* msg, const char* message) { +- msg->append("[%s] %s c: %u b: %s r: "PTR_FORMAT" u: "SIZE_FORMAT, ++ msg->append("[%s] %s c: %u b: %s r: " PTR_FORMAT " u: " SIZE_FORMAT, + _name, message, _count, BOOL_TO_STR(_bot_updates), + p2i(_alloc_region), _used_bytes_before); + } +@@ -217,7 +217,7 @@ + + if (G1_ALLOC_REGION_TRACING > 1) { + if (result != NULL) { +- jio_snprintf(rest_buffer, buffer_length, SIZE_FORMAT" "PTR_FORMAT, ++ jio_snprintf(rest_buffer, buffer_length, SIZE_FORMAT " " PTR_FORMAT, + word_size, result); + } else if (word_size != 0) { + jio_snprintf(rest_buffer, buffer_length, SIZE_FORMAT, word_size); +--- hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp.orig 2015-09-02 10:47:14.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp 2015-09-02 10:53:32.000000000 +0200 +@@ -385,11 +385,11 @@ + HeapWord* card_addr = _array->address_for_index(card); + HeapWord* block_start = block_start_const(card_addr); + if (block_start != obj_start) { +- gclog_or_tty->print_cr("block start: "PTR_FORMAT" is incorrect - " +- "card index: "SIZE_FORMAT" " +- "card addr: "PTR_FORMAT" BOT entry: %u " +- "obj: "PTR_FORMAT" word size: "SIZE_FORMAT" " +- "cards: ["SIZE_FORMAT","SIZE_FORMAT"]", ++ gclog_or_tty->print_cr("block start: " PTR_FORMAT " is incorrect - " ++ "card index: " SIZE_FORMAT " " ++ "card addr: " PTR_FORMAT " BOT entry: %u " ++ "obj: " PTR_FORMAT " word size: " SIZE_FORMAT " " ++ "cards: [" SIZE_FORMAT "," SIZE_FORMAT "]", + block_start, card, card_addr, + _array->offset_array(card), + obj_start, word_size, first_card, last_card); +@@ -404,11 +404,11 @@ + G1BlockOffsetArray::print_on(outputStream* out) { + size_t from_index = _array->index_for(_bottom); + size_t to_index = _array->index_for(_end); +- out->print_cr(">> BOT for area ["PTR_FORMAT","PTR_FORMAT") " +- "cards ["SIZE_FORMAT","SIZE_FORMAT")", ++ out->print_cr(">> BOT for area [" PTR_FORMAT "," PTR_FORMAT ") " ++ "cards [" SIZE_FORMAT "," SIZE_FORMAT ")", + _bottom, _end, from_index, to_index); + for (size_t i = from_index; i < to_index; ++i) { +- out->print_cr(" entry "SIZE_FORMAT_W(8)" | "PTR_FORMAT" : %3u", ++ out->print_cr(" entry " SIZE_FORMAT_W(8) " | " PTR_FORMAT " : %3u", + i, _array->address_for_index(i), + (uint) _array->offset_array(i)); + } +@@ -488,7 +488,7 @@ + void + G1BlockOffsetArrayContigSpace::print_on(outputStream* out) { + G1BlockOffsetArray::print_on(out); +- out->print_cr(" next offset threshold: "PTR_FORMAT, _next_offset_threshold); +- out->print_cr(" next offset index: "SIZE_FORMAT, _next_offset_index); ++ out->print_cr(" next offset threshold: " PTR_FORMAT, _next_offset_threshold); ++ out->print_cr(" next offset index: " SIZE_FORMAT, _next_offset_index); + } + #endif // !PRODUCT +--- hotspot/src/share/vm/gc_implementation/g1/g1CardCounts.cpp.orig 2015-09-02 10:47:15.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1CardCounts.cpp 2015-09-02 10:54:04.000000000 +0200 +@@ -44,7 +44,7 @@ + void G1CardCounts::clear_range(size_t from_card_num, size_t to_card_num) { + if (has_count_table()) { + assert(from_card_num < to_card_num, +- err_msg("Wrong order? from: " SIZE_FORMAT ", to: "SIZE_FORMAT, ++ err_msg("Wrong order? from: " SIZE_FORMAT ", to: " SIZE_FORMAT, + from_card_num, to_card_num)); + Copy::fill_to_bytes(&_card_counts[from_card_num], (to_card_num - from_card_num)); + } +@@ -87,7 +87,7 @@ + if (has_count_table()) { + size_t card_num = ptr_2_card_num(card_ptr); + assert(card_num < _reserved_max_card_num, +- err_msg("Card "SIZE_FORMAT" outside of card counts table (max size "SIZE_FORMAT")", ++ err_msg("Card " SIZE_FORMAT " outside of card counts table (max size " SIZE_FORMAT ")", + card_num, _reserved_max_card_num)); + count = (uint) _card_counts[card_num]; + if (count < G1ConcRSHotCardLimit) { +--- hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp.orig 2015-09-02 10:57:01.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp 2015-09-02 11:02:01.000000000 +0200 +@@ -199,7 +199,7 @@ + const size_t region_size = HeapRegion::GrainWords; + if (YoungPLABSize > region_size || OldPLABSize > region_size) { + char buffer[128]; +- jio_snprintf(buffer, sizeof(buffer), "%sPLABSize should be at most "SIZE_FORMAT, ++ jio_snprintf(buffer, sizeof(buffer), "%sPLABSize should be at most " SIZE_FORMAT, + OldPLABSize > region_size ? "Old" : "Young", region_size); + vm_exit_during_initialization(buffer); + } +@@ -846,7 +846,7 @@ + update_survivors_policy(); + + assert(_g1->used() == _g1->recalculate_used(), +- err_msg("sanity, used: "SIZE_FORMAT" recalculate_used: "SIZE_FORMAT, ++ err_msg("sanity, used: " SIZE_FORMAT " recalculate_used: " SIZE_FORMAT, + _g1->used(), _g1->recalculate_used())); + + double s_w_t_ms = (start_time_sec - _stop_world_start) * 1000.0; +@@ -1231,10 +1231,10 @@ + (_young_list_target_length * HeapRegion::GrainBytes) - survivor_used_bytes_after_gc; + + gclog_or_tty->print( +- " [Eden: "EXT_SIZE_FORMAT"("EXT_SIZE_FORMAT")->"EXT_SIZE_FORMAT"("EXT_SIZE_FORMAT") " +- "Survivors: "EXT_SIZE_FORMAT"->"EXT_SIZE_FORMAT" " +- "Heap: "EXT_SIZE_FORMAT"("EXT_SIZE_FORMAT")->" +- EXT_SIZE_FORMAT"("EXT_SIZE_FORMAT")]", ++ " [Eden: " EXT_SIZE_FORMAT "(" EXT_SIZE_FORMAT ")->" EXT_SIZE_FORMAT "(" EXT_SIZE_FORMAT ") " ++ "Survivors: " EXT_SIZE_FORMAT "->" EXT_SIZE_FORMAT " " ++ "Heap: " EXT_SIZE_FORMAT "(" EXT_SIZE_FORMAT ")->" ++ EXT_SIZE_FORMAT "(" EXT_SIZE_FORMAT ")]", + EXT_SIZE_PARAMS(_eden_used_bytes_before_gc), + EXT_SIZE_PARAMS(_eden_capacity_bytes_before_gc), + EXT_SIZE_PARAMS(eden_used_bytes_after_gc), +@@ -1863,7 +1863,7 @@ + while (csr != NULL) { + HeapRegion* next = csr->next_in_collection_set(); + assert(csr->in_collection_set(), "bad CS"); +- st->print_cr(" "HR_FORMAT", P: "PTR_FORMAT "N: "PTR_FORMAT", age: %4d", ++ st->print_cr(" " HR_FORMAT ", P: " PTR_FORMAT "N: " PTR_FORMAT ", age: %4d", + HR_FORMAT_PARAMS(csr), + csr->prev_top_at_mark_start(), csr->next_top_at_mark_start(), + csr->age_in_surv_rate_group_cond()); +--- hotspot/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp.orig 2015-09-06 14:02:06.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp 2015-09-10 13:33:10.594040691 +0200 +@@ -330,7 +330,7 @@ + } + + void G1GCPhaseTimes::print_stats(int level, const char* str, size_t value) { +- LineBuffer(level).append_and_print_cr("[%s: "SIZE_FORMAT"]", str, value); ++ LineBuffer(level).append_and_print_cr("[%s: " SIZE_FORMAT "]", str, value); + } + + void G1GCPhaseTimes::print_stats(int level, const char* str, double value, uint workers) { +@@ -450,7 +450,7 @@ + + if (phase->_thread_work_items != NULL) { + LineBuffer buf2(phase->_thread_work_items->_indent_level); +- buf2.append_and_print_cr("[%s: "SIZE_FORMAT"]", phase->_thread_work_items->_title, _phase_times->sum_thread_work_items(phase_id)); ++ buf2.append_and_print_cr("[%s: " SIZE_FORMAT "]", phase->_thread_work_items->_title, _phase_times->sum_thread_work_items(phase_id)); + } + } + +--- hotspot/src/share/vm/gc_implementation/g1/g1HRPrinter.cpp.orig 2015-09-02 10:57:01.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1HRPrinter.cpp 2015-09-02 11:03:16.000000000 +0200 +@@ -84,18 +84,18 @@ + + if (type_str != NULL) { + if (top != NULL) { +- gclog_or_tty->print_cr(G1HR_PREFIX" %s(%s) "PTR_FORMAT" "PTR_FORMAT, ++ gclog_or_tty->print_cr(G1HR_PREFIX" %s(%s) " PTR_FORMAT " " PTR_FORMAT, + action_str, type_str, bottom, top); + } else { +- gclog_or_tty->print_cr(G1HR_PREFIX" %s(%s) "PTR_FORMAT, ++ gclog_or_tty->print_cr(G1HR_PREFIX" %s(%s) " PTR_FORMAT, + action_str, type_str, bottom); + } + } else { + if (top != NULL) { +- gclog_or_tty->print_cr(G1HR_PREFIX" %s "PTR_FORMAT" "PTR_FORMAT, ++ gclog_or_tty->print_cr(G1HR_PREFIX" %s " PTR_FORMAT " " PTR_FORMAT, + action_str, bottom, top); + } else { +- gclog_or_tty->print_cr(G1HR_PREFIX" %s "PTR_FORMAT, ++ gclog_or_tty->print_cr(G1HR_PREFIX" %s " PTR_FORMAT, + action_str, bottom); + } + } +@@ -104,11 +104,11 @@ + void G1HRPrinter::print(ActionType action, HeapWord* bottom, HeapWord* end) { + const char* action_str = action_name(action); + +- gclog_or_tty->print_cr(G1HR_PREFIX" %s ["PTR_FORMAT","PTR_FORMAT"]", ++ gclog_or_tty->print_cr(G1HR_PREFIX" %s [" PTR_FORMAT "," PTR_FORMAT "]", + action_str, bottom, end); + } + + void G1HRPrinter::print(PhaseType phase, size_t phase_num) { + const char* phase_str = phase_name(phase); +- gclog_or_tty->print_cr(G1HR_PREFIX" #%s "SIZE_FORMAT, phase_str, phase_num); ++ gclog_or_tty->print_cr(G1HR_PREFIX" #%s " SIZE_FORMAT, phase_str, phase_num); + } +--- hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.orig 2015-09-06 14:02:06.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2015-09-10 12:46:24.202030127 +0200 +@@ -230,7 +230,7 @@ + HeapRegion* last = NULL; + while (curr != NULL) { + if (!curr->is_young()) { +- gclog_or_tty->print_cr("### YOUNG REGION "PTR_FORMAT"-"PTR_FORMAT" " ++ gclog_or_tty->print_cr("### YOUNG REGION " PTR_FORMAT "-" PTR_FORMAT " " + "incorrectly tagged (y: %d, surv: %d)", + curr->bottom(), curr->end(), + curr->is_young(), curr->is_survivor()); +@@ -359,7 +359,7 @@ + if (curr == NULL) + gclog_or_tty->print_cr(" empty"); + while (curr != NULL) { +- gclog_or_tty->print_cr(" "HR_FORMAT", P: "PTR_FORMAT ", N: "PTR_FORMAT", age: %4d", ++ gclog_or_tty->print_cr(" " HR_FORMAT ", P: " PTR_FORMAT ", N: " PTR_FORMAT ", age: %4d", + HR_FORMAT_PARAMS(curr), + curr->prev_top_at_mark_start(), + curr->next_top_at_mark_start(), +@@ -490,7 +490,7 @@ + gclog_or_tty->print_cr("Log entries = %d, dirty cards = %d.", + clear.num_processed(), orig_count); + guarantee(redirty.num_processed() == clear.num_processed(), +- err_msg("Redirtied "SIZE_FORMAT" cards, bug cleared "SIZE_FORMAT, ++ err_msg("Redirtied " SIZE_FORMAT " cards, bug cleared " SIZE_FORMAT, + redirty.num_processed(), clear.num_processed())); + + CountNonCleanMemRegionClosure count3(this); +@@ -528,7 +528,7 @@ + HeapRegion* res = _hrm.allocate_free_region(is_old); + if (G1ConcRegionFreeingVerbose) { + gclog_or_tty->print_cr("G1ConcRegionFreeing [region alloc] : " +- "allocated "HR_FORMAT" from secondary_free_list", ++ "allocated " HR_FORMAT " from secondary_free_list", + HR_FORMAT_PARAMS(res)); + } + return res; +@@ -1597,8 +1597,8 @@ + // This assert only makes sense here, before we adjust them + // with respect to the min and max heap size. + assert(minimum_desired_capacity <= maximum_desired_capacity, +- err_msg("minimum_desired_capacity = "SIZE_FORMAT", " +- "maximum_desired_capacity = "SIZE_FORMAT, ++ err_msg("minimum_desired_capacity = " SIZE_FORMAT ", " ++ "maximum_desired_capacity = " SIZE_FORMAT, + minimum_desired_capacity, maximum_desired_capacity)); + + // Should not be greater than the heap max size. No need to adjust +@@ -2256,7 +2256,7 @@ + virtual bool doHeapRegion(HeapRegion* hr) { + unsigned region_gc_time_stamp = hr->get_gc_time_stamp(); + if (_gc_time_stamp != region_gc_time_stamp) { +- gclog_or_tty->print_cr("Region "HR_FORMAT" has GC time stamp = %d, " ++ gclog_or_tty->print_cr("Region " HR_FORMAT " has GC time stamp = %d, " + "expected %d", HR_FORMAT_PARAMS(hr), + region_gc_time_stamp, _gc_time_stamp); + _failures = true; +@@ -2678,7 +2678,7 @@ + } else if (r->continuesHumongous()) { + if (r->humongous_start_region() != _sh_region) { + gclog_or_tty->print_cr("Region " HR_FORMAT ", " +- "HS = "PTR_FORMAT", should be "PTR_FORMAT, ++ "HS = " PTR_FORMAT ", should be " PTR_FORMAT, + HR_FORMAT_PARAMS(r), + r->humongous_start_region(), + _sh_region); +@@ -2990,10 +2990,10 @@ + if (!oopDesc::is_null(heap_oop)) { + oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); + if (_g1h->is_obj_dead_cond(obj, _vo)) { +- gclog_or_tty->print_cr("Root location "PTR_FORMAT" " +- "points to dead obj "PTR_FORMAT, p, (void*) obj); ++ gclog_or_tty->print_cr("Root location " PTR_FORMAT " " ++ "points to dead obj " PTR_FORMAT, p, (void*) obj); + if (_vo == VerifyOption_G1UseMarkWord) { +- gclog_or_tty->print_cr(" Mark word: "PTR_FORMAT, (void*)(obj->mark())); ++ gclog_or_tty->print_cr(" Mark word: " PTR_FORMAT, (void*)(obj->mark())); + } + obj->print_on(gclog_or_tty); + _failures = true; +@@ -3040,9 +3040,9 @@ + // Verify that the strong code root list for this region + // contains the nmethod + if (!hrrs->strong_code_roots_list_contains(_nm)) { +- gclog_or_tty->print_cr("Code root location "PTR_FORMAT" " +- "from nmethod "PTR_FORMAT" not in strong " +- "code roots for region ["PTR_FORMAT","PTR_FORMAT")", ++ gclog_or_tty->print_cr("Code root location " PTR_FORMAT " " ++ "from nmethod " PTR_FORMAT " not in strong " ++ "code roots for region [" PTR_FORMAT "," PTR_FORMAT ")", + p, _nm, hr->bottom(), hr->end()); + _failures = true; + } +@@ -3172,7 +3172,7 @@ + if (o != NULL) { + HeapWord *start = (HeapWord *) o; + size_t word_sz = o->size(); +- gclog_or_tty->print("\nPrinting obj "PTR_FORMAT" of size " SIZE_FORMAT ++ gclog_or_tty->print("\nPrinting obj " PTR_FORMAT " of size " SIZE_FORMAT + " isMarkedPrev %d isMarkedNext %d isAllocSince %d\n", + (void*) o, word_sz, + _g1->isMarkedPrev(o), +@@ -3183,7 +3183,7 @@ + int *val; + for (cur = start; cur < end; cur++) { + val = (int *) cur; +- gclog_or_tty->print("\t "PTR_FORMAT":"PTR_FORMAT"\n", val, *val); ++ gclog_or_tty->print("\t " PTR_FORMAT ":" PTR_FORMAT "\n", val, *val); + } + } + } +@@ -3218,9 +3218,9 @@ + r->object_iterate(¬_dead_yet_cl); + if (_vo != VerifyOption_G1UseNextMarking) { + if (r->max_live_bytes() < not_dead_yet_cl.live_bytes()) { +- gclog_or_tty->print_cr("["PTR_FORMAT","PTR_FORMAT"] " +- "max_live_bytes "SIZE_FORMAT" " +- "< calculated "SIZE_FORMAT, ++ gclog_or_tty->print_cr("[" PTR_FORMAT "," PTR_FORMAT "] " ++ "max_live_bytes " SIZE_FORMAT " " ++ "< calculated " SIZE_FORMAT, + r->bottom(), r->end(), + r->max_live_bytes(), + not_dead_yet_cl.live_bytes()); +@@ -3532,7 +3532,7 @@ + size_t occupied = hrrs->occupied(); + _occupied_sum += occupied; + +- gclog_or_tty->print_cr("Printing RSet for region "HR_FORMAT, ++ gclog_or_tty->print_cr("Printing RSet for region " HR_FORMAT, + HR_FORMAT_PARAMS(r)); + if (occupied == 0) { + gclog_or_tty->print_cr(" RSet is empty"); +@@ -3551,7 +3551,7 @@ + } + + ~PrintRSetsClosure() { +- gclog_or_tty->print_cr("Occupied Sum: "SIZE_FORMAT, _occupied_sum); ++ gclog_or_tty->print_cr("Occupied Sum: " SIZE_FORMAT, _occupied_sum); + gclog_or_tty->print_cr("========================================"); + gclog_or_tty->cr(); + } +@@ -4372,7 +4372,7 @@ + G1CollectedHeap::handle_evacuation_failure_par(G1ParScanThreadState* _par_scan_state, + oop old) { + assert(obj_in_cs(old), +- err_msg("obj: "PTR_FORMAT" should still be in the CSet", ++ err_msg("obj: " PTR_FORMAT " should still be in the CSet", + (HeapWord*) old)); + markOop m = old->mark(); + oop forward_ptr = old->forward_to_atomic(old); +@@ -4406,7 +4406,7 @@ + // space for this object (old != forward_ptr) or they beat us in + // self-forwarding it (old == forward_ptr). + assert(old == forward_ptr || !obj_in_cs(forward_ptr), +- err_msg("obj: "PTR_FORMAT" forwarded to: "PTR_FORMAT" " ++ err_msg("obj: " PTR_FORMAT " forwarded to: " PTR_FORMAT " " + "should not be in the CSet", + (HeapWord*) old, (HeapWord*) forward_ptr)); + return forward_ptr; +@@ -4793,16 +4793,16 @@ + + ~G1StringSymbolTableUnlinkTask() { + guarantee(!_process_strings || !_do_in_parallel || StringTable::parallel_claimed_index() >= _initial_string_table_size, +- err_msg("claim value "INT32_FORMAT" after unlink less than initial string table size "INT32_FORMAT, ++ err_msg("claim value " INT32_FORMAT " after unlink less than initial string table size " INT32_FORMAT, + StringTable::parallel_claimed_index(), _initial_string_table_size)); + guarantee(!_process_symbols || !_do_in_parallel || SymbolTable::parallel_claimed_index() >= _initial_symbol_table_size, +- err_msg("claim value "INT32_FORMAT" after unlink less than initial symbol table size "INT32_FORMAT, ++ err_msg("claim value " INT32_FORMAT " after unlink less than initial symbol table size " INT32_FORMAT, + SymbolTable::parallel_claimed_index(), _initial_symbol_table_size)); + + if (G1TraceStringSymbolTableScrubbing) { + gclog_or_tty->print_cr("Cleaned string and symbol table, " +- "strings: "SIZE_FORMAT" processed, "SIZE_FORMAT" removed, " +- "symbols: "SIZE_FORMAT" processed, "SIZE_FORMAT" removed", ++ "strings: " SIZE_FORMAT " processed, " SIZE_FORMAT " removed, " ++ "symbols: " SIZE_FORMAT " processed, " SIZE_FORMAT " removed", + strings_processed(), strings_removed(), + symbols_processed(), symbols_removed()); + } +@@ -6001,13 +6001,13 @@ + bool G1CollectedHeap::verify_no_bits_over_tams(const char* bitmap_name, CMBitMapRO* bitmap, + HeapWord* tams, HeapWord* end) { + guarantee(tams <= end, +- err_msg("tams: "PTR_FORMAT" end: "PTR_FORMAT, tams, end)); ++ err_msg("tams: " PTR_FORMAT " end: " PTR_FORMAT, tams, end)); + HeapWord* result = bitmap->getNextMarkedWordAddress(tams, end); + if (result < end) { + gclog_or_tty->cr(); +- gclog_or_tty->print_cr("## wrong marked address on %s bitmap: "PTR_FORMAT, ++ gclog_or_tty->print_cr("## wrong marked address on %s bitmap: " PTR_FORMAT, + bitmap_name, result); +- gclog_or_tty->print_cr("## %s tams: "PTR_FORMAT" end: "PTR_FORMAT, ++ gclog_or_tty->print_cr("## %s tams: " PTR_FORMAT " end: " PTR_FORMAT, + bitmap_name, tams, end); + return false; + } +@@ -6033,7 +6033,7 @@ + res_n = verify_no_bits_over_tams("next", next_bitmap, ntams, end); + } + if (!res_p || !res_n) { +- gclog_or_tty->print_cr("#### Bitmap verification failed for "HR_FORMAT, ++ gclog_or_tty->print_cr("#### Bitmap verification failed for " HR_FORMAT, + HR_FORMAT_PARAMS(hr)); + gclog_or_tty->print_cr("#### Caller: %s", caller); + return false; +@@ -6345,7 +6345,7 @@ + !r->rem_set()->is_empty()) { + + if (G1TraceEagerReclaimHumongousObjects) { +- gclog_or_tty->print_cr("Live humongous region %u size "SIZE_FORMAT" start "PTR_FORMAT" length "UINT32_FORMAT" with remset "SIZE_FORMAT" code roots "SIZE_FORMAT" is marked %d reclaim candidate %d type array %d", ++ gclog_or_tty->print_cr("Live humongous region %u size " SIZE_FORMAT " start " PTR_FORMAT " length " UINT32_FORMAT " with remset " SIZE_FORMAT " code roots " SIZE_FORMAT " is marked %d reclaim candidate %d type array %d", + region_idx, + obj->size()*HeapWordSize, + r->bottom(), +@@ -6367,7 +6367,7 @@ + r->bottom())); + + if (G1TraceEagerReclaimHumongousObjects) { +- gclog_or_tty->print_cr("Dead humongous region %u size "SIZE_FORMAT" start "PTR_FORMAT" length "UINT32_FORMAT" with remset "SIZE_FORMAT" code roots "SIZE_FORMAT" is marked %d reclaim candidate %d type array %d", ++ gclog_or_tty->print_cr("Dead humongous region %u size " SIZE_FORMAT " start " PTR_FORMAT " length " UINT32_FORMAT " with remset " SIZE_FORMAT " code roots " SIZE_FORMAT " is marked %d reclaim candidate %d type array %d", + region_idx, + obj->size()*HeapWordSize, + r->bottom(), +@@ -6523,7 +6523,7 @@ + NoYoungRegionsClosure() : _success(true) { } + bool doHeapRegion(HeapRegion* r) { + if (r->is_young()) { +- gclog_or_tty->print_cr("Region ["PTR_FORMAT", "PTR_FORMAT") tagged as young", ++ gclog_or_tty->print_cr("Region [" PTR_FORMAT ", " PTR_FORMAT ") tagged as young", + r->bottom(), r->end()); + _success = false; + } +@@ -6652,7 +6652,7 @@ + } + assert(_allocator->used_unlocked() == recalculate_used(), + err_msg("inconsistent _allocator->used_unlocked(), " +- "value: "SIZE_FORMAT" recalculated: "SIZE_FORMAT, ++ "value: " SIZE_FORMAT " recalculated: " SIZE_FORMAT, + _allocator->used_unlocked(), recalculate_used())); + } + +@@ -6873,8 +6873,8 @@ + oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); + HeapRegion* hr = _g1h->heap_region_containing(obj); + assert(!hr->continuesHumongous(), +- err_msg("trying to add code root "PTR_FORMAT" in continuation of humongous region "HR_FORMAT +- " starting at "HR_FORMAT, ++ err_msg("trying to add code root " PTR_FORMAT " in continuation of humongous region " HR_FORMAT ++ " starting at " HR_FORMAT, + _nm, HR_FORMAT_PARAMS(hr), HR_FORMAT_PARAMS(hr->humongous_start_region()))); + + // HeapRegion::add_strong_code_root_locked() avoids adding duplicate entries. +@@ -6900,8 +6900,8 @@ + oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); + HeapRegion* hr = _g1h->heap_region_containing(obj); + assert(!hr->continuesHumongous(), +- err_msg("trying to remove code root "PTR_FORMAT" in continuation of humongous region "HR_FORMAT +- " starting at "HR_FORMAT, ++ err_msg("trying to remove code root " PTR_FORMAT " in continuation of humongous region " HR_FORMAT ++ " starting at " HR_FORMAT, + _nm, HR_FORMAT_PARAMS(hr), HR_FORMAT_PARAMS(hr->humongous_start_region()))); + + hr->remove_strong_code_root(_nm); +--- hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp.orig 2015-09-02 11:07:35.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp 2015-09-02 11:08:48.000000000 +0200 +@@ -475,7 +475,7 @@ + bool G1RemSet::refine_card(jbyte* card_ptr, uint worker_i, + bool check_for_refs_into_cset) { + assert(_g1->is_in_exact(_ct_bs->addr_for(card_ptr)), +- err_msg("Card at "PTR_FORMAT" index "SIZE_FORMAT" representing heap at "PTR_FORMAT" (%u) must be in committed heap", ++ err_msg("Card at " PTR_FORMAT " index " SIZE_FORMAT " representing heap at " PTR_FORMAT " (%u) must be in committed heap", + p2i(card_ptr), + _ct_bs->index_for(_ct_bs->addr_for(card_ptr)), + _ct_bs->addr_for(card_ptr), +--- hotspot/src/share/vm/gc_implementation/g1/g1RemSetSummary.cpp.orig 2015-09-02 11:13:52.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1RemSetSummary.cpp 2015-09-02 11:15:30.000000000 +0200 +@@ -187,22 +187,22 @@ + size_t code_root_elems() const { return _code_root_elems; } + + void print_rs_mem_info_on(outputStream * out, size_t total) { +- out->print_cr(" "SIZE_FORMAT_W(8)"K (%5.1f%%) by "SIZE_FORMAT" %s regions", ++ out->print_cr(" " SIZE_FORMAT_W(8) "K (%5.1f%%) by " SIZE_FORMAT " %s regions", + round_to_K(rs_mem_size()), rs_mem_size_percent_of(total), amount(), _name); + } + + void print_cards_occupied_info_on(outputStream * out, size_t total) { +- out->print_cr(" "SIZE_FORMAT_W(8)" (%5.1f%%) entries by "SIZE_FORMAT" %s regions", ++ out->print_cr(" " SIZE_FORMAT_W(8) " (%5.1f%%) entries by " SIZE_FORMAT " %s regions", + cards_occupied(), cards_occupied_percent_of(total), amount(), _name); + } + + void print_code_root_mem_info_on(outputStream * out, size_t total) { +- out->print_cr(" "SIZE_FORMAT_W(8)"K (%5.1f%%) by "SIZE_FORMAT" %s regions", ++ out->print_cr(" " SIZE_FORMAT_W(8) "K (%5.1f%%) by " SIZE_FORMAT " %s regions", + round_to_K(code_root_mem_size()), code_root_mem_size_percent_of(total), amount(), _name); + } + + void print_code_root_elems_info_on(outputStream * out, size_t total) { +- out->print_cr(" "SIZE_FORMAT_W(8)" (%5.1f%%) elements by "SIZE_FORMAT" %s regions", ++ out->print_cr(" " SIZE_FORMAT_W(8) " (%5.1f%%) elements by " SIZE_FORMAT " %s regions", + code_root_elems(), code_root_elems_percent_of(total), amount(), _name); + } + }; +@@ -280,19 +280,19 @@ + RegionTypeCounter* counters[] = { &_young, &_humonguous, &_free, &_old, NULL }; + + out->print_cr("\n Current rem set statistics"); +- out->print_cr(" Total per region rem sets sizes = "SIZE_FORMAT"K." +- " Max = "SIZE_FORMAT"K.", ++ out->print_cr(" Total per region rem sets sizes = " SIZE_FORMAT "K." ++ " Max = " SIZE_FORMAT "K.", + round_to_K(total_rs_mem_sz()), round_to_K(max_rs_mem_sz())); + for (RegionTypeCounter** current = &counters[0]; *current != NULL; current++) { + (*current)->print_rs_mem_info_on(out, total_rs_mem_sz()); + } + +- out->print_cr(" Static structures = "SIZE_FORMAT"K," +- " free_lists = "SIZE_FORMAT"K.", ++ out->print_cr(" Static structures = " SIZE_FORMAT "K," ++ " free_lists = " SIZE_FORMAT "K.", + round_to_K(HeapRegionRemSet::static_mem_size()), + round_to_K(HeapRegionRemSet::fl_mem_size())); + +- out->print_cr(" "SIZE_FORMAT" occupied cards represented.", ++ out->print_cr(" " SIZE_FORMAT " occupied cards represented.", + total_cards_occupied()); + for (RegionTypeCounter** current = &counters[0]; *current != NULL; current++) { + (*current)->print_cards_occupied_info_on(out, total_cards_occupied()); +@@ -301,29 +301,29 @@ + // Largest sized rem set region statistics + HeapRegionRemSet* rem_set = max_rs_mem_sz_region()->rem_set(); + out->print_cr(" Region with largest rem set = "HR_FORMAT", " +- "size = "SIZE_FORMAT "K, occupied = "SIZE_FORMAT"K.", ++ "size = " SIZE_FORMAT "K, occupied = " SIZE_FORMAT "K.", + HR_FORMAT_PARAMS(max_rs_mem_sz_region()), + round_to_K(rem_set->mem_size()), + round_to_K(rem_set->occupied())); + + // Strong code root statistics + HeapRegionRemSet* max_code_root_rem_set = max_code_root_mem_sz_region()->rem_set(); +- out->print_cr(" Total heap region code root sets sizes = "SIZE_FORMAT"K." +- " Max = "SIZE_FORMAT"K.", ++ out->print_cr(" Total heap region code root sets sizes = " SIZE_FORMAT "K." ++ " Max = " SIZE_FORMAT "K.", + round_to_K(total_code_root_mem_sz()), + round_to_K(max_code_root_rem_set->strong_code_roots_mem_size())); + for (RegionTypeCounter** current = &counters[0]; *current != NULL; current++) { + (*current)->print_code_root_mem_info_on(out, total_code_root_mem_sz()); + } + +- out->print_cr(" "SIZE_FORMAT" code roots represented.", ++ out->print_cr(" " SIZE_FORMAT " code roots represented.", + total_code_root_elems()); + for (RegionTypeCounter** current = &counters[0]; *current != NULL; current++) { + (*current)->print_code_root_elems_info_on(out, total_code_root_elems()); + } + +- out->print_cr(" Region with largest amount of code roots = "HR_FORMAT", " +- "size = "SIZE_FORMAT "K, num_elems = "SIZE_FORMAT".", ++ out->print_cr(" Region with largest amount of code roots = " HR_FORMAT ", " ++ "size = " SIZE_FORMAT "K, num_elems = " SIZE_FORMAT ".", + HR_FORMAT_PARAMS(max_code_root_mem_sz_region()), + round_to_K(max_code_root_rem_set->strong_code_roots_mem_size()), + round_to_K(max_code_root_rem_set->strong_code_roots_list_length())); +@@ -332,16 +332,16 @@ + + void G1RemSetSummary::print_on(outputStream* out) { + out->print_cr("\n Recent concurrent refinement statistics"); +- out->print_cr(" Processed "SIZE_FORMAT" cards", ++ out->print_cr(" Processed " SIZE_FORMAT " cards", + num_concurrent_refined_cards()); +- out->print_cr(" Of "SIZE_FORMAT" completed buffers:", num_processed_buf_total()); +- out->print_cr(" "SIZE_FORMAT_W(8)" (%5.1f%%) by concurrent RS threads.", ++ out->print_cr(" Of " SIZE_FORMAT " completed buffers:", num_processed_buf_total()); ++ out->print_cr(" " SIZE_FORMAT_W(8) " (%5.1f%%) by concurrent RS threads.", + num_processed_buf_total(), + percent_of(num_processed_buf_rs_threads(), num_processed_buf_total())); +- out->print_cr(" "SIZE_FORMAT_W(8)" (%5.1f%%) by mutator threads.", ++ out->print_cr(" " SIZE_FORMAT_W(8) " (%5.1f%%) by mutator threads.", + num_processed_buf_mutator(), + percent_of(num_processed_buf_mutator(), num_processed_buf_total())); +- out->print_cr(" Did "SIZE_FORMAT" coarsenings.", num_coarsenings()); ++ out->print_cr(" Did " SIZE_FORMAT " coarsenings.", num_coarsenings()); + out->print_cr(" Concurrent RS threads times (s)"); + out->print(" "); + for (uint i = 0; i < _num_vtimes; i++) { +--- hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.orig 2015-09-02 11:13:52.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2015-09-02 11:15:44.000000000 +0200 +@@ -151,7 +151,7 @@ + void G1StringDedupQueue::print_statistics(outputStream* st) { + st->print_cr( + " [Queue]\n" +- " [Dropped: "UINTX_FORMAT"]", _queue->_dropped); ++ " [Dropped: " UINTX_FORMAT "]", _queue->_dropped); + } + + void G1StringDedupQueue::verify() { +--- hotspot/src/share/vm/gc_implementation/g1/g1StringDedupStat.cpp.orig 2015-09-02 11:13:52.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1StringDedupStat.cpp 2015-09-02 11:18:07.000000000 +0200 +@@ -80,8 +80,8 @@ + st->stamp(PrintGCTimeStamps); + st->print_cr( + "[GC concurrent-string-deduplication, " +- G1_STRDEDUP_BYTES_FORMAT_NS"->"G1_STRDEDUP_BYTES_FORMAT_NS"("G1_STRDEDUP_BYTES_FORMAT_NS"), avg " +- G1_STRDEDUP_PERCENT_FORMAT_NS", "G1_STRDEDUP_TIME_FORMAT"]", ++ G1_STRDEDUP_BYTES_FORMAT_NS "->" G1_STRDEDUP_BYTES_FORMAT_NS "(" G1_STRDEDUP_BYTES_FORMAT_NS "), avg " ++ G1_STRDEDUP_PERCENT_FORMAT_NS ", " G1_STRDEDUP_TIME_FORMAT "]", + G1_STRDEDUP_BYTES_PARAM(last_stat._new_bytes), + G1_STRDEDUP_BYTES_PARAM(last_stat._new_bytes - last_stat._deduped_bytes), + G1_STRDEDUP_BYTES_PARAM(last_stat._deduped_bytes), +@@ -135,22 +135,22 @@ + + if (total) { + st->print_cr( +- " [Total Exec: "UINTX_FORMAT"/"G1_STRDEDUP_TIME_FORMAT", Idle: "UINTX_FORMAT"/"G1_STRDEDUP_TIME_FORMAT", Blocked: "UINTX_FORMAT"/"G1_STRDEDUP_TIME_FORMAT"]", ++ " [Total Exec: " UINTX_FORMAT "/" G1_STRDEDUP_TIME_FORMAT ", Idle: " UINTX_FORMAT "/" G1_STRDEDUP_TIME_FORMAT ", Blocked: " UINTX_FORMAT "/" G1_STRDEDUP_TIME_FORMAT "]", + stat._exec, stat._exec_elapsed, stat._idle, stat._idle_elapsed, stat._block, stat._block_elapsed); + } else { + st->print_cr( +- " [Last Exec: "G1_STRDEDUP_TIME_FORMAT", Idle: "G1_STRDEDUP_TIME_FORMAT", Blocked: "UINTX_FORMAT"/"G1_STRDEDUP_TIME_FORMAT"]", ++ " [Last Exec: " G1_STRDEDUP_TIME_FORMAT ", Idle: " G1_STRDEDUP_TIME_FORMAT ", Blocked: " UINTX_FORMAT "/" G1_STRDEDUP_TIME_FORMAT "]", + stat._exec_elapsed, stat._idle_elapsed, stat._block, stat._block_elapsed); + } + st->print_cr( +- " [Inspected: "G1_STRDEDUP_OBJECTS_FORMAT"]\n" +- " [Skipped: "G1_STRDEDUP_OBJECTS_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT")]\n" +- " [Hashed: "G1_STRDEDUP_OBJECTS_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT")]\n" +- " [Known: "G1_STRDEDUP_OBJECTS_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT")]\n" +- " [New: "G1_STRDEDUP_OBJECTS_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT") "G1_STRDEDUP_BYTES_FORMAT"]\n" +- " [Deduplicated: "G1_STRDEDUP_OBJECTS_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT") "G1_STRDEDUP_BYTES_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT")]\n" +- " [Young: "G1_STRDEDUP_OBJECTS_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT") "G1_STRDEDUP_BYTES_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT")]\n" +- " [Old: "G1_STRDEDUP_OBJECTS_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT") "G1_STRDEDUP_BYTES_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT")]", ++ " [Inspected: " G1_STRDEDUP_OBJECTS_FORMAT "]\n" ++ " [Skipped: " G1_STRDEDUP_OBJECTS_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT ")]\n" ++ " [Hashed: " G1_STRDEDUP_OBJECTS_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT ")]\n" ++ " [Known: " G1_STRDEDUP_OBJECTS_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT ")]\n" ++ " [New: " G1_STRDEDUP_OBJECTS_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT ") " G1_STRDEDUP_BYTES_FORMAT "]\n" ++ " [Deduplicated: " G1_STRDEDUP_OBJECTS_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT ") " G1_STRDEDUP_BYTES_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT ")]\n" ++ " [Young: " G1_STRDEDUP_OBJECTS_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT ") " G1_STRDEDUP_BYTES_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT ")]\n" ++ " [Old: " G1_STRDEDUP_OBJECTS_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT ") " G1_STRDEDUP_BYTES_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT ")]", + stat._inspected, + stat._skipped, skipped_percent, + stat._hashed, hashed_percent, +--- hotspot/src/share/vm/gc_implementation/g1/g1RemSetSummary.cpp.orig 2015-09-02 12:36:40.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1RemSetSummary.cpp 2015-09-02 12:37:19.000000000 +0200 +@@ -300,7 +300,7 @@ + + // Largest sized rem set region statistics + HeapRegionRemSet* rem_set = max_rs_mem_sz_region()->rem_set(); +- out->print_cr(" Region with largest rem set = "HR_FORMAT", " ++ out->print_cr(" Region with largest rem set = " HR_FORMAT ", " + "size = " SIZE_FORMAT "K, occupied = " SIZE_FORMAT "K.", + HR_FORMAT_PARAMS(max_rs_mem_sz_region()), + round_to_K(rem_set->mem_size()), +--- hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.orig 2015-09-02 12:36:40.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2015-09-02 12:41:56.000000000 +0200 +@@ -554,12 +554,12 @@ + void G1StringDedupTable::print_statistics(outputStream* st) { + st->print_cr( + " [Table]\n" +- " [Memory Usage: "G1_STRDEDUP_BYTES_FORMAT_NS"]\n" +- " [Size: "SIZE_FORMAT", Min: "SIZE_FORMAT", Max: "SIZE_FORMAT"]\n" +- " [Entries: "UINTX_FORMAT", Load: "G1_STRDEDUP_PERCENT_FORMAT_NS", Cached: " UINTX_FORMAT ", Added: "UINTX_FORMAT", Removed: "UINTX_FORMAT"]\n" +- " [Resize Count: "UINTX_FORMAT", Shrink Threshold: "UINTX_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT_NS"), Grow Threshold: "UINTX_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT_NS")]\n" +- " [Rehash Count: "UINTX_FORMAT", Rehash Threshold: "UINTX_FORMAT", Hash Seed: 0x%x]\n" +- " [Age Threshold: "UINTX_FORMAT"]", ++ " [Memory Usage: " G1_STRDEDUP_BYTES_FORMAT_NS "]\n" ++ " [Size: " SIZE_FORMAT ", Min: " SIZE_FORMAT ", Max: " SIZE_FORMAT "]\n" ++ " [Entries: " UINTX_FORMAT ", Load: " G1_STRDEDUP_PERCENT_FORMAT_NS ", Cached: " UINTX_FORMAT ", Added: " UINTX_FORMAT ", Removed: " UINTX_FORMAT "]\n" ++ " [Resize Count: " UINTX_FORMAT ", Shrink Threshold: " UINTX_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT_NS "), Grow Threshold: " UINTX_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT_NS ")]\n" ++ " [Rehash Count: " UINTX_FORMAT ", Rehash Threshold: " UINTX_FORMAT ", Hash Seed: 0x%x]\n" ++ " [Age Threshold: " UINTX_FORMAT "]", + G1_STRDEDUP_BYTES_PARAM(_table->_size * sizeof(G1StringDedupEntry*) + (_table->_entries + _entry_cache->size()) * sizeof(G1StringDedupEntry)), + _table->_size, _min_size, _max_size, + _table->_entries, (double)_table->_entries / (double)_table->_size * 100.0, _entry_cache->size(), _entries_added, _entries_removed, +--- hotspot/src/share/vm/memory/genCollectedHeap.cpp.orig 2015-09-02 12:51:37.000000000 +0200 ++++ hotspot/src/share/vm/memory/genCollectedHeap.cpp 2015-09-02 12:52:12.000000000 +0200 +@@ -1315,7 +1315,7 @@ + // back a time later than 'now'. + jlong retVal = now - tolgc_cl.time(); + if (retVal < 0) { +- NOT_PRODUCT(warning("time warp: "INT64_FORMAT, (int64_t) retVal);) ++ NOT_PRODUCT(warning("time warp: " INT64_FORMAT, (int64_t) retVal);) + return 0; + } + return retVal; +--- hotspot/src/share/vm/memory/generation.cpp.orig 2015-09-02 12:51:38.000000000 +0200 ++++ hotspot/src/share/vm/memory/generation.cpp 2015-09-02 12:52:33.000000000 +0200 +@@ -187,7 +187,7 @@ + bool res = (available >= max_promotion_in_bytes); + if (PrintGC && Verbose) { + gclog_or_tty->print_cr( +- "Generation: promo attempt is%s safe: available("SIZE_FORMAT") %s max_promo("SIZE_FORMAT")", ++ "Generation: promo attempt is%s safe: available(" SIZE_FORMAT ") %s max_promo(" SIZE_FORMAT ")", + res? "":" not", available, res? ">=":"<", + max_promotion_in_bytes); + } +--- hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.orig 2015-09-02 12:57:25.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2015-09-02 13:00:29.000000000 +0200 +@@ -371,7 +371,7 @@ + bool during_conc_mark, + size_t marked_bytes) { + assert(0 <= marked_bytes && marked_bytes <= used(), +- err_msg("marked: "SIZE_FORMAT" used: "SIZE_FORMAT, ++ err_msg("marked: " SIZE_FORMAT " used: " SIZE_FORMAT, + marked_bytes, used())); + _prev_top_at_mark_start = top(); + _prev_marked_bytes = marked_bytes; +@@ -559,9 +559,9 @@ + // Object is in the region. Check that its less than top + if (_hr->top() <= (HeapWord*)obj) { + // Object is above top +- gclog_or_tty->print_cr("Object "PTR_FORMAT" in region " +- "["PTR_FORMAT", "PTR_FORMAT") is above " +- "top "PTR_FORMAT, ++ gclog_or_tty->print_cr("Object " PTR_FORMAT " in region " ++ "[" PTR_FORMAT ", " PTR_FORMAT ") is above " ++ "top " PTR_FORMAT, + (void *)obj, _hr->bottom(), _hr->end(), _hr->top()); + _failures = true; + return; +@@ -595,22 +595,22 @@ + if (nm != NULL) { + // Verify that the nemthod is live + if (!nm->is_alive()) { +- gclog_or_tty->print_cr("region ["PTR_FORMAT","PTR_FORMAT"] has dead nmethod " +- PTR_FORMAT" in its strong code roots", ++ gclog_or_tty->print_cr("region [" PTR_FORMAT "," PTR_FORMAT "] has dead nmethod " ++ PTR_FORMAT " in its strong code roots", + _hr->bottom(), _hr->end(), nm); + _failures = true; + } else { + VerifyStrongCodeRootOopClosure oop_cl(_hr, nm); + nm->oops_do(&oop_cl); + if (!oop_cl.has_oops_in_region()) { +- gclog_or_tty->print_cr("region ["PTR_FORMAT","PTR_FORMAT"] has nmethod " +- PTR_FORMAT" in its strong code roots " ++ gclog_or_tty->print_cr("region [" PTR_FORMAT "," PTR_FORMAT "] has nmethod " ++ PTR_FORMAT " in its strong code roots " + "with no pointers into region", + _hr->bottom(), _hr->end(), nm); + _failures = true; + } else if (oop_cl.failures()) { +- gclog_or_tty->print_cr("region ["PTR_FORMAT","PTR_FORMAT"] has other " +- "failures for nmethod "PTR_FORMAT, ++ gclog_or_tty->print_cr("region [" PTR_FORMAT "," PTR_FORMAT "] has other " ++ "failures for nmethod " PTR_FORMAT, + _hr->bottom(), _hr->end(), nm); + _failures = true; + } +@@ -644,8 +644,8 @@ + // on its strong code root list + if (is_empty()) { + if (strong_code_roots_length > 0) { +- gclog_or_tty->print_cr("region ["PTR_FORMAT","PTR_FORMAT"] is empty " +- "but has "SIZE_FORMAT" code root entries", ++ gclog_or_tty->print_cr("region [" PTR_FORMAT "," PTR_FORMAT "] is empty " ++ "but has " SIZE_FORMAT " code root entries", + bottom(), end(), strong_code_roots_length); + *failures = true; + } +@@ -654,8 +654,8 @@ + + if (continuesHumongous()) { + if (strong_code_roots_length > 0) { +- gclog_or_tty->print_cr("region "HR_FORMAT" is a continuation of a humongous " +- "region but has "SIZE_FORMAT" code root entries", ++ gclog_or_tty->print_cr("region " HR_FORMAT " is a continuation of a humongous " ++ "region but has " SIZE_FORMAT " code root entries", + HR_FORMAT_PARAMS(this), strong_code_roots_length); + *failures = true; + } +@@ -679,7 +679,7 @@ + else + st->print(" "); + st->print(" TS %5d", _gc_time_stamp); +- st->print(" PTAMS "PTR_FORMAT" NTAMS "PTR_FORMAT, ++ st->print(" PTAMS " PTR_FORMAT " NTAMS " PTR_FORMAT, + prev_top_at_mark_start(), next_top_at_mark_start()); + G1OffsetTableContigSpace::print_on(st); + } +@@ -744,25 +744,25 @@ + } + if (!_g1h->is_in_closed_subset(obj)) { + HeapRegion* from = _g1h->heap_region_containing((HeapWord*)p); +- gclog_or_tty->print_cr("Field "PTR_FORMAT +- " of live obj "PTR_FORMAT" in region " +- "["PTR_FORMAT", "PTR_FORMAT")", ++ gclog_or_tty->print_cr("Field " PTR_FORMAT ++ " of live obj " PTR_FORMAT " in region " ++ "[" PTR_FORMAT ", " PTR_FORMAT ")", + p, (void*) _containing_obj, + from->bottom(), from->end()); + print_object(gclog_or_tty, _containing_obj); +- gclog_or_tty->print_cr("points to obj "PTR_FORMAT" not in the heap", ++ gclog_or_tty->print_cr("points to obj " PTR_FORMAT " not in the heap", + (void*) obj); + } else { + HeapRegion* from = _g1h->heap_region_containing((HeapWord*)p); + HeapRegion* to = _g1h->heap_region_containing((HeapWord*)obj); +- gclog_or_tty->print_cr("Field "PTR_FORMAT +- " of live obj "PTR_FORMAT" in region " +- "["PTR_FORMAT", "PTR_FORMAT")", ++ gclog_or_tty->print_cr("Field " PTR_FORMAT ++ " of live obj " PTR_FORMAT " in region " ++ "[" PTR_FORMAT ", " PTR_FORMAT ")", + p, (void*) _containing_obj, + from->bottom(), from->end()); + print_object(gclog_or_tty, _containing_obj); +- gclog_or_tty->print_cr("points to dead obj "PTR_FORMAT" in region " +- "["PTR_FORMAT", "PTR_FORMAT")", ++ gclog_or_tty->print_cr("points to dead obj " PTR_FORMAT " in region " ++ "[" PTR_FORMAT ", " PTR_FORMAT ")", + (void*) obj, to->bottom(), to->end()); + print_object(gclog_or_tty, obj); + } +@@ -798,14 +798,14 @@ + gclog_or_tty->print_cr("----------"); + } + gclog_or_tty->print_cr("Missing rem set entry:"); +- gclog_or_tty->print_cr("Field "PTR_FORMAT" " +- "of obj "PTR_FORMAT", " +- "in region "HR_FORMAT, ++ gclog_or_tty->print_cr("Field " PTR_FORMAT " " ++ "of obj " PTR_FORMAT ", " ++ "in region " HR_FORMAT, + p, (void*) _containing_obj, + HR_FORMAT_PARAMS(from)); + _containing_obj->print_on(gclog_or_tty); +- gclog_or_tty->print_cr("points to obj "PTR_FORMAT" " +- "in region "HR_FORMAT, ++ gclog_or_tty->print_cr("points to obj " PTR_FORMAT " " ++ "in region " HR_FORMAT, + (void*) obj, + HR_FORMAT_PARAMS(to)); + obj->print_on(gclog_or_tty); +@@ -842,8 +842,8 @@ + + if (is_humongous != g1->isHumongous(obj_size) && + !g1->is_obj_dead(obj, this)) { // Dead objects may have bigger block_size since they span several objects. +- gclog_or_tty->print_cr("obj "PTR_FORMAT" is of %shumongous size (" +- SIZE_FORMAT" words) in a %shumongous region", ++ gclog_or_tty->print_cr("obj " PTR_FORMAT " is of %shumongous size (" ++ SIZE_FORMAT " words) in a %shumongous region", + p, g1->isHumongous(obj_size) ? "" : "non-", + obj_size, is_humongous ? "" : "non-"); + *failures = true; +@@ -866,12 +866,12 @@ + (vo == VerifyOption_G1UsePrevMarking && + ClassLoaderDataGraph::unload_list_contains(klass)); + if (!is_metaspace_object) { +- gclog_or_tty->print_cr("klass "PTR_FORMAT" of object "PTR_FORMAT" " ++ gclog_or_tty->print_cr("klass " PTR_FORMAT " of object " PTR_FORMAT " " + "not metadata", klass, (void *)obj); + *failures = true; + return; + } else if (!klass->is_klass()) { +- gclog_or_tty->print_cr("klass "PTR_FORMAT" of object "PTR_FORMAT" " ++ gclog_or_tty->print_cr("klass " PTR_FORMAT " of object " PTR_FORMAT " " + "not a klass", klass, (void *)obj); + *failures = true; + return; +@@ -887,7 +887,7 @@ + } + } + } else { +- gclog_or_tty->print_cr(PTR_FORMAT" no an oop", (void *)obj); ++ gclog_or_tty->print_cr(PTR_FORMAT " no an oop", (void *)obj); + *failures = true; + return; + } +@@ -897,8 +897,8 @@ + } + + if (p != top()) { +- gclog_or_tty->print_cr("end of last object "PTR_FORMAT" " +- "does not match top "PTR_FORMAT, p, top()); ++ gclog_or_tty->print_cr("end of last object " PTR_FORMAT " " ++ "does not match top " PTR_FORMAT, p, top()); + *failures = true; + return; + } +@@ -913,8 +913,8 @@ + HeapWord* addr_1 = p; + HeapWord* b_start_1 = _offsets.block_start_const(addr_1); + if (b_start_1 != p) { +- gclog_or_tty->print_cr("BOT look up for top: "PTR_FORMAT" " +- " yielded "PTR_FORMAT", expecting "PTR_FORMAT, ++ gclog_or_tty->print_cr("BOT look up for top: " PTR_FORMAT " " ++ " yielded " PTR_FORMAT ", expecting " PTR_FORMAT, + addr_1, b_start_1, p); + *failures = true; + return; +@@ -925,8 +925,8 @@ + if (addr_2 < the_end) { + HeapWord* b_start_2 = _offsets.block_start_const(addr_2); + if (b_start_2 != p) { +- gclog_or_tty->print_cr("BOT look up for top + 1: "PTR_FORMAT" " +- " yielded "PTR_FORMAT", expecting "PTR_FORMAT, ++ gclog_or_tty->print_cr("BOT look up for top + 1: " PTR_FORMAT " " ++ " yielded " PTR_FORMAT ", expecting " PTR_FORMAT, + addr_2, b_start_2, p); + *failures = true; + return; +@@ -939,8 +939,8 @@ + if (addr_3 < the_end) { + HeapWord* b_start_3 = _offsets.block_start_const(addr_3); + if (b_start_3 != p) { +- gclog_or_tty->print_cr("BOT look up for top + diff: "PTR_FORMAT" " +- " yielded "PTR_FORMAT", expecting "PTR_FORMAT, ++ gclog_or_tty->print_cr("BOT look up for top + diff: " PTR_FORMAT " " ++ " yielded " PTR_FORMAT ", expecting " PTR_FORMAT, + addr_3, b_start_3, p); + *failures = true; + return; +@@ -951,8 +951,8 @@ + HeapWord* addr_4 = the_end - 1; + HeapWord* b_start_4 = _offsets.block_start_const(addr_4); + if (b_start_4 != p) { +- gclog_or_tty->print_cr("BOT look up for end - 1: "PTR_FORMAT" " +- " yielded "PTR_FORMAT", expecting "PTR_FORMAT, ++ gclog_or_tty->print_cr("BOT look up for end - 1: " PTR_FORMAT " " ++ " yielded " PTR_FORMAT ", expecting " PTR_FORMAT, + addr_4, b_start_4, p); + *failures = true; + return; +@@ -960,8 +960,8 @@ + } + + if (is_humongous && object_num > 1) { +- gclog_or_tty->print_cr("region ["PTR_FORMAT","PTR_FORMAT"] is humongous " +- "but has "SIZE_FORMAT", objects", ++ gclog_or_tty->print_cr("region [" PTR_FORMAT "," PTR_FORMAT "] is humongous " ++ "but has " SIZE_FORMAT ", objects", + bottom(), end(), object_num); + *failures = true; + return; +--- hotspot/src/share/vm/gc_implementation/g1/heapRegionManager.cpp.orig 2015-09-02 12:57:25.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/heapRegionManager.cpp 2015-09-02 13:01:10.000000000 +0200 +@@ -414,7 +414,7 @@ + HeapRegion* hr = _regions.get_by_index(i); + guarantee(hr != NULL, err_msg("invariant: i: %u", i)); + guarantee(!prev_committed || hr->bottom() == prev_end, +- err_msg("invariant i: %u "HR_FORMAT" prev_end: "PTR_FORMAT, ++ err_msg("invariant i: %u " HR_FORMAT " prev_end: " PTR_FORMAT, + i, HR_FORMAT_PARAMS(hr), p2i(prev_end))); + guarantee(hr->hrm_index() == i, + err_msg("invariant: i: %u hrm_index(): %u", i, hr->hrm_index())); +--- hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.orig 2015-09-02 12:57:25.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2015-09-02 13:03:44.000000000 +0200 +@@ -91,7 +91,7 @@ + // concurrency. + + if (G1TraceHeapRegionRememberedSet) { +- gclog_or_tty->print_cr(" PRT::Add_reference_work(" PTR_FORMAT "->" PTR_FORMAT").", ++ gclog_or_tty->print_cr(" PRT::Add_reference_work(" PTR_FORMAT "->" PTR_FORMAT ").", + from, + UseCompressedOops + ? (void *)oopDesc::load_decode_heap_oop((narrowOop*)from) +@@ -377,7 +377,7 @@ + + void FromCardCache::invalidate(uint start_idx, size_t new_num_regions) { + guarantee((size_t)start_idx + new_num_regions <= max_uintx, +- err_msg("Trying to invalidate beyond maximum region, from %u size "SIZE_FORMAT, ++ err_msg("Trying to invalidate beyond maximum region, from %u size " SIZE_FORMAT, + start_idx, new_num_regions)); + for (uint i = 0; i < HeapRegionRemSet::num_par_rem_sets(); i++) { + uint end_idx = (start_idx + (uint)new_num_regions); +@@ -392,7 +392,7 @@ + void FromCardCache::print(outputStream* out) { + for (uint i = 0; i < HeapRegionRemSet::num_par_rem_sets(); i++) { + for (uint j = 0; j < _max_regions; j++) { +- out->print_cr("_from_card_cache["UINT32_FORMAT"]["UINT32_FORMAT"] = "INT32_FORMAT".", ++ out->print_cr("_from_card_cache[" UINT32_FORMAT "][" UINT32_FORMAT "] = " INT32_FORMAT ".", + i, j, at(i, j)); + } + } +@@ -432,7 +432,7 @@ + int from_card = (int)(uintptr_t(from) >> CardTableModRefBS::card_shift); + + if (G1TraceHeapRegionRememberedSet) { +- gclog_or_tty->print_cr("Table for [" PTR_FORMAT "...): card %d (cache = "INT32_FORMAT")", ++ gclog_or_tty->print_cr("Table for [" PTR_FORMAT "...): card %d (cache = " INT32_FORMAT ")", + hr()->bottom(), from_card, + FromCardCache::at((uint)tid, cur_hrm_ind)); + } +@@ -637,13 +637,13 @@ + + assert(_coarse_map.size() == region_bm->size(), "Precondition"); + if (G1RSScrubVerbose) { +- gclog_or_tty->print(" Coarse map: before = "SIZE_FORMAT"...", ++ gclog_or_tty->print(" Coarse map: before = " SIZE_FORMAT "...", + _n_coarse_entries); + } + _coarse_map.set_intersection(*region_bm); + _n_coarse_entries = _coarse_map.count_one_bits(); + if (G1RSScrubVerbose) { +- gclog_or_tty->print_cr(" after = "SIZE_FORMAT".", _n_coarse_entries); ++ gclog_or_tty->print_cr(" after = " SIZE_FORMAT ".", _n_coarse_entries); + } + + // Now do the fine-grained maps. +@@ -1027,7 +1027,7 @@ + + card_index = _cur_region_card_offset + _cur_card_in_prt; + guarantee(_cur_card_in_prt < HeapRegion::CardsPerRegion, +- err_msg("Card index "SIZE_FORMAT" must be within the region", _cur_card_in_prt)); ++ err_msg("Card index " SIZE_FORMAT " must be within the region", _cur_card_in_prt)); + return true; + } + +@@ -1196,8 +1196,8 @@ + + size_t min_prt_size = sizeof(void*) + dummy->bm()->size_in_words() * HeapWordSize; + assert(dummy->mem_size() > min_prt_size, +- err_msg("PerRegionTable memory usage is suspiciously small, only has "SIZE_FORMAT" bytes. " +- "Should be at least "SIZE_FORMAT" bytes.", dummy->mem_size(), min_prt_size)); ++ err_msg("PerRegionTable memory usage is suspiciously small, only has " SIZE_FORMAT " bytes. " ++ "Should be at least " SIZE_FORMAT " bytes.", dummy->mem_size(), min_prt_size)); + free(dummy); + guarantee(dummy->mem_size() == fl_mem_size(), "fl_mem_size() does not return the correct element size"); + // try to reset the state +--- hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.cpp.orig 2015-09-02 12:57:25.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.cpp 2015-09-02 13:04:36.000000000 +0200 +@@ -32,7 +32,7 @@ + uint FreeRegionList::_unrealistically_long_length = 0; + + void HeapRegionSetBase::fill_in_ext_msg(hrs_ext_msg* msg, const char* message) { +- msg->append("[%s] %s ln: %u cy: "SIZE_FORMAT, ++ msg->append("[%s] %s ln: %u cy: " SIZE_FORMAT, + name(), message, length(), total_capacity_bytes()); + fill_in_ext_msg_extra(msg); + } +@@ -84,13 +84,13 @@ + + void HeapRegionSetBase::print_on(outputStream* out, bool print_contents) { + out->cr(); +- out->print_cr("Set: %s ("PTR_FORMAT")", name(), this); ++ out->print_cr("Set: %s (" PTR_FORMAT ")", name(), this); + out->print_cr(" Region Assumptions"); + out->print_cr(" humongous : %s", BOOL_TO_STR(regions_humongous())); + out->print_cr(" free : %s", BOOL_TO_STR(regions_free())); + out->print_cr(" Attributes"); + out->print_cr(" length : %14u", length()); +- out->print_cr(" total capacity : "SIZE_FORMAT_W(14)" bytes", ++ out->print_cr(" total capacity : " SIZE_FORMAT_W(14) " bytes", + total_capacity_bytes()); + } + +@@ -106,7 +106,7 @@ + } + + void FreeRegionList::fill_in_ext_msg_extra(hrs_ext_msg* msg) { +- msg->append(" hd: "PTR_FORMAT" tl: "PTR_FORMAT, _head, _tail); ++ msg->append(" hd: " PTR_FORMAT " tl: " PTR_FORMAT, _head, _tail); + } + + void FreeRegionList::remove_all() { +@@ -277,8 +277,8 @@ + void FreeRegionList::print_on(outputStream* out, bool print_contents) { + HeapRegionSetBase::print_on(out, print_contents); + out->print_cr(" Linking"); +- out->print_cr(" head : "PTR_FORMAT, _head); +- out->print_cr(" tail : "PTR_FORMAT, _tail); ++ out->print_cr(" head : " PTR_FORMAT, _head); ++ out->print_cr(" tail : " PTR_FORMAT, _tail); + + if (print_contents) { + out->print_cr(" Contents"); +@@ -306,7 +306,7 @@ + + count++; + guarantee(count < _unrealistically_long_length, +- hrs_err_msg("[%s] the calculated length: %u seems very long, is there maybe a cycle? curr: "PTR_FORMAT" prev0: "PTR_FORMAT" " "prev1: "PTR_FORMAT" length: %u", name(), count, curr, prev0, prev1, length())); ++ hrs_err_msg("[%s] the calculated length: %u seems very long, is there maybe a cycle? curr: " PTR_FORMAT " prev0: " PTR_FORMAT " " "prev1: " PTR_FORMAT " length: %u", name(), count, curr, prev0, prev1, length())); + + if (curr->next() != NULL) { + guarantee(curr->next()->prev() == curr, "Next or prev pointers messed up"); +--- hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp.orig 2015-09-02 13:07:15.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp 2015-09-02 13:10:48.000000000 +0200 +@@ -86,7 +86,7 @@ + while (words_left_to_fill > 0) { + size_t words_to_fill = MIN2(words_left_to_fill, CollectedHeap::filler_array_max_size()); + assert(words_to_fill >= CollectedHeap::min_fill_size(), +- err_msg("Remaining size ("SIZE_FORMAT ") is too small to fill (based on " SIZE_FORMAT " and " SIZE_FORMAT ")", ++ err_msg("Remaining size (" SIZE_FORMAT ") is too small to fill (based on " SIZE_FORMAT " and " SIZE_FORMAT ")", + words_to_fill, words_left_to_fill, CollectedHeap::filler_array_max_size())); + CollectedHeap::fill_with_object((HeapWord*)cur_top, words_to_fill); + if (!os::numa_has_static_binding()) { +--- hotspot/src/share/vm/prims/methodHandles.cpp.orig 2015-09-02 13:07:15.000000000 +0200 ++++ hotspot/src/share/vm/prims/methodHandles.cpp 2015-09-02 13:10:16.000000000 +0200 +@@ -1300,27 +1300,27 @@ + + // These are the native methods on java.lang.invoke.MethodHandleNatives. + static JNINativeMethod MHN_methods[] = { +- {CC"init", CC"("MEM""OBJ")V", FN_PTR(MHN_init_Mem)}, +- {CC"expand", CC"("MEM")V", FN_PTR(MHN_expand_Mem)}, +- {CC"resolve", CC"("MEM""CLS")"MEM, FN_PTR(MHN_resolve_Mem)}, +- {CC"getConstant", CC"(I)I", FN_PTR(MHN_getConstant)}, ++ {CC "init", CC "(" MEM "" OBJ ")V", FN_PTR(MHN_init_Mem)}, ++ {CC "expand", CC "(" MEM ")V", FN_PTR(MHN_expand_Mem)}, ++ {CC "resolve", CC "(" MEM "" CLS ")" MEM, FN_PTR(MHN_resolve_Mem)}, ++ {CC "getConstant", CC "(I)I", FN_PTR(MHN_getConstant)}, + // static native int getNamedCon(int which, Object[] name) +- {CC"getNamedCon", CC"(I["OBJ")I", FN_PTR(MHN_getNamedCon)}, ++ {CC "getNamedCon", CC "(I[" OBJ ")I", FN_PTR(MHN_getNamedCon)}, + // static native int getMembers(Class defc, String matchName, String matchSig, + // int matchFlags, Class caller, int skip, MemberName[] results); +- {CC"getMembers", CC"("CLS""STRG""STRG"I"CLS"I["MEM")I", FN_PTR(MHN_getMembers)}, +- {CC"objectFieldOffset", CC"("MEM")J", FN_PTR(MHN_objectFieldOffset)}, +- {CC"setCallSiteTargetNormal", CC"("CS""MH")V", FN_PTR(MHN_setCallSiteTargetNormal)}, +- {CC"setCallSiteTargetVolatile", CC"("CS""MH")V", FN_PTR(MHN_setCallSiteTargetVolatile)}, +- {CC"staticFieldOffset", CC"("MEM")J", FN_PTR(MHN_staticFieldOffset)}, +- {CC"staticFieldBase", CC"("MEM")"OBJ, FN_PTR(MHN_staticFieldBase)}, +- {CC"getMemberVMInfo", CC"("MEM")"OBJ, FN_PTR(MHN_getMemberVMInfo)} ++ {CC "getMembers", CC "(" CLS "" STRG "" STRG "I" CLS "I[" MEM ")I", FN_PTR(MHN_getMembers)}, ++ {CC "objectFieldOffset", CC "(" MEM ")J", FN_PTR(MHN_objectFieldOffset)}, ++ {CC "setCallSiteTargetNormal", CC "(" CS "" MH ")V", FN_PTR(MHN_setCallSiteTargetNormal)}, ++ {CC "setCallSiteTargetVolatile", CC "(" CS "" MH ")V", FN_PTR(MHN_setCallSiteTargetVolatile)}, ++ {CC "staticFieldOffset", CC "(" MEM ")J", FN_PTR(MHN_staticFieldOffset)}, ++ {CC "staticFieldBase", CC "(" MEM ")" OBJ, FN_PTR(MHN_staticFieldBase)}, ++ {CC "getMemberVMInfo", CC "(" MEM ")" OBJ, FN_PTR(MHN_getMemberVMInfo)} + }; + + static JNINativeMethod MH_methods[] = { + // UnsupportedOperationException throwers +- {CC"invoke", CC"(["OBJ")"OBJ, FN_PTR(MH_invoke_UOE)}, +- {CC"invokeExact", CC"(["OBJ")"OBJ, FN_PTR(MH_invokeExact_UOE)} ++ {CC"invoke", CC "([" OBJ ")" OBJ, FN_PTR(MH_invoke_UOE)}, ++ {CC"invokeExact", CC "([" OBJ ")" OBJ, FN_PTR(MH_invokeExact_UOE)} + }; + + /** +--- hotspot/src/share/vm/oops/objArrayKlass.cpp.orig 2015-09-02 13:19:26.000000000 +0200 ++++ hotspot/src/share/vm/oops/objArrayKlass.cpp 2015-09-02 13:22:11.000000000 +0200 +@@ -657,7 +657,7 @@ + if (i > max_objArray_print_length) { + st->print("..."); break; + } +- st->print(" "INTPTR_FORMAT, (intptr_t)(void*)objArrayOop(obj)->obj_at(i)); ++ st->print(" " INTPTR_FORMAT, (intptr_t)(void*)objArrayOop(obj)->obj_at(i)); + } + st->print(" }"); + } +--- hotspot/src/share/vm/oops/oop.cpp.orig 2015-09-02 13:19:26.000000000 +0200 ++++ hotspot/src/share/vm/oops/oop.cpp 2015-09-02 13:22:22.000000000 +0200 +@@ -46,7 +46,7 @@ + + void oopDesc::print_address_on(outputStream* st) const { + if (PrintOopAddress) { +- st->print("{"INTPTR_FORMAT"}", this); ++ st->print("{" INTPTR_FORMAT "}", this); + } + } + +--- hotspot/src/os/posix/vm/os_posix.cpp.orig 2015-09-02 13:32:01.000000000 +0200 ++++ hotspot/src/os/posix/vm/os_posix.cpp 2015-09-02 13:33:42.000000000 +0200 +@@ -594,7 +594,7 @@ + strncpy(buffer, "none", size); + + const struct { +- int i; ++ unsigned i; + const char* s; + } flaginfo [] = { + { SA_NOCLDSTOP, "SA_NOCLDSTOP" }, +--- hotspot/src/share/vm/code/nmethod.cpp.orig 2015-09-02 13:19:26.000000000 +0200 ++++ hotspot/src/share/vm/code/nmethod.cpp 2015-09-02 13:27:23.000000000 +0200 +@@ -2303,7 +2303,7 @@ + void maybe_print(oop* p) { + if (_print_nm == NULL) return; + if (!_detected_scavenge_root) _print_nm->print_on(tty, "new scavenge root"); +- tty->print_cr(""PTR_FORMAT"[offset=%d] detected scavengable oop "PTR_FORMAT" (found at "PTR_FORMAT")", ++ tty->print_cr("" PTR_FORMAT "[offset=%d] detected scavengable oop " PTR_FORMAT " (found at " PTR_FORMAT ")", + _print_nm, (int)((intptr_t)p - (intptr_t)_print_nm), + (void *)(*p), (intptr_t)p); + (*p)->print(); +@@ -2684,7 +2684,7 @@ + _nm->print_nmethod(true); + _ok = false; + } +- tty->print_cr("*** non-oop "PTR_FORMAT" found at "PTR_FORMAT" (offset %d)", ++ tty->print_cr("*** non-oop " PTR_FORMAT " found at " PTR_FORMAT " (offset %d)", + (void *)(*p), (intptr_t)p, (int)((intptr_t)p - (intptr_t)_nm)); + } + virtual void do_oop(narrowOop* p) { ShouldNotReachHere(); } +@@ -2808,7 +2808,7 @@ + _nm->print_nmethod(true); + _ok = false; + } +- tty->print_cr("*** scavengable oop "PTR_FORMAT" found at "PTR_FORMAT" (offset %d)", ++ tty->print_cr("*** scavengable oop " PTR_FORMAT " found at " PTR_FORMAT " (offset %d)", + (void *)(*p), (intptr_t)p, (int)((intptr_t)p - (intptr_t)_nm)); + (*p)->print(); + } +@@ -2853,7 +2853,7 @@ + print_on(tty, NULL); + + if (WizardMode) { +- tty->print("((nmethod*) "INTPTR_FORMAT ") ", this); ++ tty->print("((nmethod*) " INTPTR_FORMAT ") ", this); + tty->print(" for method " INTPTR_FORMAT , (address)method()); + tty->print(" { "); + if (is_in_use()) tty->print("in_use "); +--- hotspot/src/share/vm/gc_implementation/shared/parGCAllocBuffer.cpp.orig 2015-09-02 13:28:16.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/shared/parGCAllocBuffer.cpp 2015-09-02 13:31:09.000000000 +0200 +@@ -98,10 +98,10 @@ + if (_allocated == 0) { + assert(_unused == 0, + err_msg("Inconsistency in PLAB stats: " +- "_allocated: "SIZE_FORMAT", " +- "_wasted: "SIZE_FORMAT", " +- "_unused: "SIZE_FORMAT", " +- "_used : "SIZE_FORMAT, ++ "_allocated: " SIZE_FORMAT ", " ++ "_wasted: " SIZE_FORMAT ", " ++ "_unused: " SIZE_FORMAT ", " ++ "_used : " SIZE_FORMAT, + _allocated, _wasted, _unused, _used)); + + _allocated = 1; +--- hotspot/src/share/vm/utilities/ostream.cpp.orig 2015-09-02 13:28:16.000000000 +0200 ++++ hotspot/src/share/vm/utilities/ostream.cpp 2015-09-02 13:34:57.000000000 +0200 +@@ -277,7 +277,7 @@ + size_t limit = (len + 16) / 16 * 16; + for (size_t i = 0; i < limit; ++i) { + if (i % 16 == 0) { +- indent().print(SIZE_FORMAT_HEX_W(07)":", i); ++ indent().print(SIZE_FORMAT_HEX_W(07) ":", i); + } + if (i % 2 == 0) { + print(" "); +@@ -945,7 +945,7 @@ + // %%% Should be: jlong time_ms = os::start_time_milliseconds(), if + // we ever get round to introduce that method on the os class + xs->head("hotspot_log version='%d %d'" +- " process='%d' time_ms='"INT64_FORMAT"'", ++ " process='%d' time_ms='" INT64_FORMAT "'", + LOG_MAJOR_VERSION, LOG_MINOR_VERSION, + os::current_process_id(), (int64_t)time_ms); + // Write VM version header immediately. +--- hotspot/src/share/vm/prims/perf.cpp.orig 2015-09-02 13:36:01.000000000 +0200 ++++ hotspot/src/share/vm/prims/perf.cpp 2015-09-02 13:37:33.000000000 +0200 +@@ -290,17 +290,17 @@ + #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &f) + #define BB "Ljava/nio/ByteBuffer;" + #define JLS "Ljava/lang/String;" +-#define CL_ARGS CC"("JLS"IIJ)"BB +-#define CBA_ARGS CC"("JLS"II[BI)"BB ++#define CL_ARGS CC "(" JLS "IIJ)" BB ++#define CBA_ARGS CC "(" JLS "II[BI)" BB + + static JNINativeMethod perfmethods[] = { + +- {CC"attach", CC"("JLS"II)"BB, FN_PTR(Perf_Attach)}, +- {CC"detach", CC"("BB")V", FN_PTR(Perf_Detach)}, +- {CC"createLong", CL_ARGS, FN_PTR(Perf_CreateLong)}, +- {CC"createByteArray", CBA_ARGS, FN_PTR(Perf_CreateByteArray)}, +- {CC"highResCounter", CC"()J", FN_PTR(Perf_HighResCounter)}, +- {CC"highResFrequency", CC"()J", FN_PTR(Perf_HighResFrequency)} ++ {CC"attach", CC "(" JLS "II)" BB, FN_PTR(Perf_Attach)}, ++ {CC"detach", CC "(" BB ")V", FN_PTR(Perf_Detach)}, ++ {CC"createLong", CL_ARGS, FN_PTR(Perf_CreateLong)}, ++ {CC"createByteArray", CBA_ARGS, FN_PTR(Perf_CreateByteArray)}, ++ {CC"highResCounter", CC "()J", FN_PTR(Perf_HighResCounter)}, ++ {CC"highResFrequency", CC "()J", FN_PTR(Perf_HighResFrequency)} + }; + + #undef CBA_ARGS +--- hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp.orig 2015-09-02 13:39:42.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp 2015-09-02 13:40:05.000000000 +0200 +@@ -669,7 +669,7 @@ + jlong ret_val = now - _time_of_last_gc; + // XXX See note in genCollectedHeap::millis_since_last_gc(). + if (ret_val < 0) { +- NOT_PRODUCT(warning("time warp: "INT64_FORMAT, ret_val);) ++ NOT_PRODUCT(warning("time warp: " INT64_FORMAT, ret_val);) + return 0; + } + return ret_val; +--- hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.orig 2015-09-02 13:39:42.000000000 +0200 ++++ hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2015-09-02 13:40:50.000000000 +0200 +@@ -3292,7 +3292,7 @@ + jlong ret_val = now - _time_of_last_gc; + // XXX See note in genCollectedHeap::millis_since_last_gc(). + if (ret_val < 0) { +- NOT_PRODUCT(warning("time warp: "INT64_FORMAT, ret_val);) ++ NOT_PRODUCT(warning("time warp: " INT64_FORMAT, ret_val);) + return 0; + } + return ret_val; +--- hotspot/src/share/vm/memory/referenceProcessor.cpp.orig 2015-09-02 13:42:24.000000000 +0200 ++++ hotspot/src/share/vm/memory/referenceProcessor.cpp 2015-09-02 13:42:55.000000000 +0200 +@@ -161,7 +161,7 @@ + + NOT_PRODUCT( + if (now < _soft_ref_timestamp_clock) { +- warning("time warp: "INT64_FORMAT" to "INT64_FORMAT, ++ warning("time warp: " INT64_FORMAT " to " INT64_FORMAT, + _soft_ref_timestamp_clock, now); + } + ) +--- hotspot/src/share/vm/runtime/safepoint.cpp.orig 2015-09-02 14:51:21.000000000 +0200 ++++ hotspot/src/share/vm/runtime/safepoint.cpp 2015-09-02 14:52:56.000000000 +0200 +@@ -983,7 +983,7 @@ + + case _running: + default: +- tty->print_cr("restart thread "INTPTR_FORMAT" with state %d", ++ tty->print_cr("restart thread " INTPTR_FORMAT " with state %d", + _thread, _type); + _thread->print(); + ShouldNotReachHere(); +@@ -1340,14 +1340,14 @@ + + for (int index = 0; index < VM_Operation::VMOp_Terminating; index++) { + if (_safepoint_reasons[index] != 0) { +- tty->print_cr("%-26s"UINT64_FORMAT_W(10), VM_Operation::name(index), ++ tty->print_cr("%-26s" UINT64_FORMAT_W(10), VM_Operation::name(index), + _safepoint_reasons[index]); + } + } + + tty->print_cr(UINT64_FORMAT_W(5)" VM operations coalesced during safepoint", + _coalesced_vmop_count); +- tty->print_cr("Maximum sync time "INT64_FORMAT_W(5)" ms", ++ tty->print_cr("Maximum sync time " INT64_FORMAT_W(5) " ms", + _max_sync_time / MICROUNITS); + tty->print_cr("Maximum vm operation time (except for Exit VM operation) " + INT64_FORMAT_W(5)" ms", +--- hotspot/src/share/vm/memory/tenuredGeneration.cpp.orig 2015-09-02 18:11:24.000000000 +0200 ++++ hotspot/src/share/vm/memory/tenuredGeneration.cpp 2015-09-02 18:11:32.000000000 +0200 +@@ -292,8 +292,8 @@ + bool res = (available >= av_promo) || (available >= max_promotion_in_bytes); + if (PrintGC && Verbose) { + gclog_or_tty->print_cr( +- "Tenured: promo attempt is%s safe: available("SIZE_FORMAT") %s av_promo("SIZE_FORMAT")," +- "max_promo("SIZE_FORMAT")", ++ "Tenured: promo attempt is%s safe: available(" SIZE_FORMAT ") %s av_promo(" SIZE_FORMAT ")," ++ "max_promo(" SIZE_FORMAT ")", + res? "":" not", available, res? ">=":"<", + av_promo, max_promotion_in_bytes); + } +--- hotspot/src/share/vm/services/threadService.cpp.orig 2015-09-02 18:11:24.000000000 +0200 ++++ hotspot/src/share/vm/services/threadService.cpp 2015-09-02 18:11:32.000000000 +0200 +@@ -889,7 +889,7 @@ + st->print(" waiting to lock monitor " INTPTR_FORMAT, waitingToLockMonitor); + oop obj = (oop)waitingToLockMonitor->object(); + if (obj != NULL) { +- st->print(" (object "INTPTR_FORMAT ", a %s)", (address)obj, ++ st->print(" (object " INTPTR_FORMAT ", a %s)", (address)obj, + (InstanceKlass::cast(obj->klass()))->external_name()); + + if (!currentThread->current_pending_monitor_is_from_java()) { +--- hotspot/src/share/vm/memory/universe.cpp.orig 2015-09-02 18:25:28.000000000 +0200 ++++ hotspot/src/share/vm/memory/universe.cpp 2015-09-02 18:26:04.000000000 +0200 +@@ -919,7 +919,7 @@ + // Reserve the Java heap, which is now the same for all GCs. + ReservedSpace Universe::reserve_heap(size_t heap_size, size_t alignment) { + assert(alignment <= Arguments::conservative_max_heap_alignment(), +- err_msg("actual alignment "SIZE_FORMAT" must be within maximum heap alignment "SIZE_FORMAT, ++ err_msg("actual alignment " SIZE_FORMAT " must be within maximum heap alignment " SIZE_FORMAT, + alignment, Arguments::conservative_max_heap_alignment())); + size_t total_reserved = align_size_up(heap_size, alignment); + assert(!UseCompressedOops || (total_reserved <= (OopEncodingHeapMax - os::vm_page_size())), +--- hotspot/src/share/vm/prims/unsafe.cpp.orig 2015-09-02 18:25:32.000000000 +0200 ++++ hotspot/src/share/vm/prims/unsafe.cpp 2015-09-02 18:47:09.000000000 +0200 +@@ -977,7 +977,7 @@ + UNSAFE_END + + +-#define DAC_Args CLS"[B["OBJ ++#define DAC_Args CLS "[B[" OBJ + // define a class but do not make it known to the class loader or system dictionary + // - host_class: supplies context for linkage, access control, protection domain, and class loader + // - data: bytes of a class file, a raw memory address (length gives the number of bytes) +@@ -1337,47 +1337,47 @@ + + #define LANG "Ljava/lang/" + +-#define OBJ LANG"Object;" +-#define CLS LANG"Class;" +-#define CTR LANG"reflect/Constructor;" +-#define FLD LANG"reflect/Field;" +-#define MTH LANG"reflect/Method;" +-#define THR LANG"Throwable;" ++#define OBJ LANG "Object;" ++#define CLS LANG "Class;" ++#define CTR LANG "reflect/Constructor;" ++#define FLD LANG "reflect/Field;" ++#define MTH LANG "reflect/Method;" ++#define THR LANG "Throwable;" + +-#define DC0_Args LANG"String;[BII" +-#define DC_Args DC0_Args LANG"ClassLoader;" "Ljava/security/ProtectionDomain;" ++#define DC0_Args LANG "String;[BII" ++#define DC_Args DC0_Args LANG "ClassLoader;" "Ljava/security/ProtectionDomain;" + + #define CC (char*) /*cast a literal from (const char*)*/ + #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &f) + + // define deprecated accessors for compabitility with 1.4.0 + #define DECLARE_GETSETOOP_140(Boolean, Z) \ +- {CC"get"#Boolean, CC"("OBJ"I)"#Z, FN_PTR(Unsafe_Get##Boolean##140)}, \ +- {CC"put"#Boolean, CC"("OBJ"I"#Z")V", FN_PTR(Unsafe_Set##Boolean##140)} ++ {CC"get"#Boolean, CC"(" OBJ "I)" #Z, FN_PTR(Unsafe_Get##Boolean##140)}, \ ++ {CC"put"#Boolean, CC"(" OBJ "I" #Z ")V", FN_PTR(Unsafe_Set##Boolean##140)} + + // Note: In 1.4.1, getObject and kin take both int and long offsets. + #define DECLARE_GETSETOOP_141(Boolean, Z) \ +- {CC"get"#Boolean, CC"("OBJ"J)"#Z, FN_PTR(Unsafe_Get##Boolean)}, \ +- {CC"put"#Boolean, CC"("OBJ"J"#Z")V", FN_PTR(Unsafe_Set##Boolean)} ++ {CC"get"#Boolean, CC"(" OBJ "J)" #Z, FN_PTR(Unsafe_Get##Boolean)}, \ ++ {CC"put"#Boolean, CC"(" OBJ "J" #Z ")V", FN_PTR(Unsafe_Set##Boolean)} + + // Note: In 1.5.0, there are volatile versions too + #define DECLARE_GETSETOOP(Boolean, Z) \ +- {CC"get"#Boolean, CC"("OBJ"J)"#Z, FN_PTR(Unsafe_Get##Boolean)}, \ +- {CC"put"#Boolean, CC"("OBJ"J"#Z")V", FN_PTR(Unsafe_Set##Boolean)}, \ +- {CC"get"#Boolean"Volatile", CC"("OBJ"J)"#Z, FN_PTR(Unsafe_Get##Boolean##Volatile)}, \ +- {CC"put"#Boolean"Volatile", CC"("OBJ"J"#Z")V", FN_PTR(Unsafe_Set##Boolean##Volatile)} ++ {CC"get"#Boolean, CC"(" OBJ "J)" #Z, FN_PTR(Unsafe_Get##Boolean)}, \ ++ {CC"put"#Boolean, CC"(" OBJ "J" #Z ")V", FN_PTR(Unsafe_Set##Boolean)}, \ ++ {CC"get"#Boolean "Volatile", CC"(" OBJ "J)" #Z, FN_PTR(Unsafe_Get##Boolean##Volatile)}, \ ++ {CC"put"#Boolean "Volatile", CC"(" OBJ "J" #Z ")V", FN_PTR(Unsafe_Set##Boolean##Volatile)} + + + #define DECLARE_GETSETNATIVE(Byte, B) \ +- {CC"get"#Byte, CC"("ADR")"#B, FN_PTR(Unsafe_GetNative##Byte)}, \ +- {CC"put"#Byte, CC"("ADR#B")V", FN_PTR(Unsafe_SetNative##Byte)} ++ {CC"get"#Byte, CC"(" ADR ")" #B, FN_PTR(Unsafe_GetNative##Byte)}, \ ++ {CC"put"#Byte, CC"(" ADR #B ")V", FN_PTR(Unsafe_SetNative##Byte)} + + + + // These are the methods for 1.4.0 + static JNINativeMethod methods_140[] = { +- {CC"getObject", CC"("OBJ"I)"OBJ"", FN_PTR(Unsafe_GetObject140)}, +- {CC"putObject", CC"("OBJ"I"OBJ")V", FN_PTR(Unsafe_SetObject140)}, ++ {CC"getObject", CC"(" OBJ "I)" OBJ "", FN_PTR(Unsafe_GetObject140)}, ++ {CC"putObject", CC"(" OBJ "I" OBJ ")V", FN_PTR(Unsafe_SetObject140)}, + + DECLARE_GETSETOOP_140(Boolean, Z), + DECLARE_GETSETOOP_140(Byte, B), +@@ -1396,33 +1396,33 @@ + DECLARE_GETSETNATIVE(Float, F), + DECLARE_GETSETNATIVE(Double, D), + +- {CC"getAddress", CC"("ADR")"ADR, FN_PTR(Unsafe_GetNativeAddress)}, +- {CC"putAddress", CC"("ADR""ADR")V", FN_PTR(Unsafe_SetNativeAddress)}, ++ {CC"getAddress", CC"(" ADR ")" ADR, FN_PTR(Unsafe_GetNativeAddress)}, ++ {CC"putAddress", CC"(" ADR "" ADR ")V", FN_PTR(Unsafe_SetNativeAddress)}, + +- {CC"allocateMemory", CC"(J)"ADR, FN_PTR(Unsafe_AllocateMemory)}, +- {CC"reallocateMemory", CC"("ADR"J)"ADR, FN_PTR(Unsafe_ReallocateMemory)}, +- {CC"freeMemory", CC"("ADR")V", FN_PTR(Unsafe_FreeMemory)}, +- +- {CC"fieldOffset", CC"("FLD")I", FN_PTR(Unsafe_FieldOffset)}, +- {CC"staticFieldBase", CC"("CLS")"OBJ, FN_PTR(Unsafe_StaticFieldBaseFromClass)}, +- {CC"ensureClassInitialized",CC"("CLS")V", FN_PTR(Unsafe_EnsureClassInitialized)}, +- {CC"arrayBaseOffset", CC"("CLS")I", FN_PTR(Unsafe_ArrayBaseOffset)}, +- {CC"arrayIndexScale", CC"("CLS")I", FN_PTR(Unsafe_ArrayIndexScale)}, ++ {CC"allocateMemory", CC"(J)" ADR, FN_PTR(Unsafe_AllocateMemory)}, ++ {CC"reallocateMemory", CC"(" ADR "J)" ADR, FN_PTR(Unsafe_ReallocateMemory)}, ++ {CC"freeMemory", CC"(" ADR ")V", FN_PTR(Unsafe_FreeMemory)}, ++ ++ {CC"fieldOffset", CC"(" FLD ")I", FN_PTR(Unsafe_FieldOffset)}, ++ {CC"staticFieldBase", CC"(" CLS ")" OBJ, FN_PTR(Unsafe_StaticFieldBaseFromClass)}, ++ {CC"ensureClassInitialized",CC"(" CLS ")V", FN_PTR(Unsafe_EnsureClassInitialized)}, ++ {CC"arrayBaseOffset", CC"(" CLS ")I", FN_PTR(Unsafe_ArrayBaseOffset)}, ++ {CC"arrayIndexScale", CC"(" CLS ")I", FN_PTR(Unsafe_ArrayIndexScale)}, + {CC"addressSize", CC"()I", FN_PTR(Unsafe_AddressSize)}, + {CC"pageSize", CC"()I", FN_PTR(Unsafe_PageSize)}, + +- {CC"defineClass", CC"("DC0_Args")"CLS, FN_PTR(Unsafe_DefineClass0)}, +- {CC"defineClass", CC"("DC_Args")"CLS, FN_PTR(Unsafe_DefineClass)}, +- {CC"allocateInstance", CC"("CLS")"OBJ, FN_PTR(Unsafe_AllocateInstance)}, +- {CC"monitorEnter", CC"("OBJ")V", FN_PTR(Unsafe_MonitorEnter)}, +- {CC"monitorExit", CC"("OBJ")V", FN_PTR(Unsafe_MonitorExit)}, +- {CC"throwException", CC"("THR")V", FN_PTR(Unsafe_ThrowException)} ++ {CC"defineClass", CC"(" DC0_Args ")" CLS, FN_PTR(Unsafe_DefineClass0)}, ++ {CC"defineClass", CC"(" DC_Args ")" CLS, FN_PTR(Unsafe_DefineClass)}, ++ {CC"allocateInstance", CC"(" CLS ")" OBJ, FN_PTR(Unsafe_AllocateInstance)}, ++ {CC"monitorEnter", CC"(" OBJ ")V", FN_PTR(Unsafe_MonitorEnter)}, ++ {CC"monitorExit", CC"(" OBJ ")V", FN_PTR(Unsafe_MonitorExit)}, ++ {CC"throwException", CC"(" THR ")V", FN_PTR(Unsafe_ThrowException)} + }; + + // These are the methods prior to the JSR 166 changes in 1.5.0 + static JNINativeMethod methods_141[] = { +- {CC"getObject", CC"("OBJ"J)"OBJ"", FN_PTR(Unsafe_GetObject)}, +- {CC"putObject", CC"("OBJ"J"OBJ")V", FN_PTR(Unsafe_SetObject)}, ++ {CC"getObject", CC"(" OBJ "J)" OBJ "", FN_PTR(Unsafe_GetObject)}, ++ {CC"putObject", CC"(" OBJ "J" OBJ ")V", FN_PTR(Unsafe_SetObject)}, + + DECLARE_GETSETOOP_141(Boolean, Z), + DECLARE_GETSETOOP_141(Byte, B), +@@ -1441,37 +1441,37 @@ + DECLARE_GETSETNATIVE(Float, F), + DECLARE_GETSETNATIVE(Double, D), + +- {CC"getAddress", CC"("ADR")"ADR, FN_PTR(Unsafe_GetNativeAddress)}, +- {CC"putAddress", CC"("ADR""ADR")V", FN_PTR(Unsafe_SetNativeAddress)}, ++ {CC"getAddress", CC"(" ADR ")" ADR, FN_PTR(Unsafe_GetNativeAddress)}, ++ {CC"putAddress", CC"(" ADR "" ADR ")V", FN_PTR(Unsafe_SetNativeAddress)}, + +- {CC"allocateMemory", CC"(J)"ADR, FN_PTR(Unsafe_AllocateMemory)}, +- {CC"reallocateMemory", CC"("ADR"J)"ADR, FN_PTR(Unsafe_ReallocateMemory)}, +- {CC"freeMemory", CC"("ADR")V", FN_PTR(Unsafe_FreeMemory)}, +- +- {CC"objectFieldOffset", CC"("FLD")J", FN_PTR(Unsafe_ObjectFieldOffset)}, +- {CC"staticFieldOffset", CC"("FLD")J", FN_PTR(Unsafe_StaticFieldOffset)}, +- {CC"staticFieldBase", CC"("FLD")"OBJ, FN_PTR(Unsafe_StaticFieldBaseFromField)}, +- {CC"ensureClassInitialized",CC"("CLS")V", FN_PTR(Unsafe_EnsureClassInitialized)}, +- {CC"arrayBaseOffset", CC"("CLS")I", FN_PTR(Unsafe_ArrayBaseOffset)}, +- {CC"arrayIndexScale", CC"("CLS")I", FN_PTR(Unsafe_ArrayIndexScale)}, ++ {CC"allocateMemory", CC"(J)" ADR, FN_PTR(Unsafe_AllocateMemory)}, ++ {CC"reallocateMemory", CC"(" ADR "J)" ADR, FN_PTR(Unsafe_ReallocateMemory)}, ++ {CC"freeMemory", CC"(" ADR ")V", FN_PTR(Unsafe_FreeMemory)}, ++ ++ {CC"objectFieldOffset", CC"(" FLD ")J", FN_PTR(Unsafe_ObjectFieldOffset)}, ++ {CC"staticFieldOffset", CC"(" FLD ")J", FN_PTR(Unsafe_StaticFieldOffset)}, ++ {CC"staticFieldBase", CC"(" FLD ")" OBJ, FN_PTR(Unsafe_StaticFieldBaseFromField)}, ++ {CC"ensureClassInitialized",CC"(" CLS ")V", FN_PTR(Unsafe_EnsureClassInitialized)}, ++ {CC"arrayBaseOffset", CC"(" CLS ")I", FN_PTR(Unsafe_ArrayBaseOffset)}, ++ {CC"arrayIndexScale", CC"(" CLS ")I", FN_PTR(Unsafe_ArrayIndexScale)}, + {CC"addressSize", CC"()I", FN_PTR(Unsafe_AddressSize)}, + {CC"pageSize", CC"()I", FN_PTR(Unsafe_PageSize)}, + +- {CC"defineClass", CC"("DC0_Args")"CLS, FN_PTR(Unsafe_DefineClass0)}, +- {CC"defineClass", CC"("DC_Args")"CLS, FN_PTR(Unsafe_DefineClass)}, +- {CC"allocateInstance", CC"("CLS")"OBJ, FN_PTR(Unsafe_AllocateInstance)}, +- {CC"monitorEnter", CC"("OBJ")V", FN_PTR(Unsafe_MonitorEnter)}, +- {CC"monitorExit", CC"("OBJ")V", FN_PTR(Unsafe_MonitorExit)}, +- {CC"throwException", CC"("THR")V", FN_PTR(Unsafe_ThrowException)} ++ {CC"defineClass", CC"(" DC0_Args ")" CLS, FN_PTR(Unsafe_DefineClass0)}, ++ {CC"defineClass", CC"(" DC_Args ")" CLS, FN_PTR(Unsafe_DefineClass)}, ++ {CC"allocateInstance", CC"(" CLS ")" OBJ, FN_PTR(Unsafe_AllocateInstance)}, ++ {CC"monitorEnter", CC"(" OBJ ")V", FN_PTR(Unsafe_MonitorEnter)}, ++ {CC"monitorExit", CC"(" OBJ ")V", FN_PTR(Unsafe_MonitorExit)}, ++ {CC"throwException", CC"(" THR ")V", FN_PTR(Unsafe_ThrowException)} + + }; + + // These are the methods prior to the JSR 166 changes in 1.6.0 + static JNINativeMethod methods_15[] = { +- {CC"getObject", CC"("OBJ"J)"OBJ"", FN_PTR(Unsafe_GetObject)}, +- {CC"putObject", CC"("OBJ"J"OBJ")V", FN_PTR(Unsafe_SetObject)}, +- {CC"getObjectVolatile",CC"("OBJ"J)"OBJ"", FN_PTR(Unsafe_GetObjectVolatile)}, +- {CC"putObjectVolatile",CC"("OBJ"J"OBJ")V", FN_PTR(Unsafe_SetObjectVolatile)}, ++ {CC"getObject", CC"(" OBJ "J)" OBJ "", FN_PTR(Unsafe_GetObject)}, ++ {CC"putObject", CC"(" OBJ "J" OBJ ")V", FN_PTR(Unsafe_SetObject)}, ++ {CC"getObjectVolatile",CC"(" OBJ "J)" OBJ "", FN_PTR(Unsafe_GetObjectVolatile)}, ++ {CC"putObjectVolatile",CC"(" OBJ "J" OBJ ")V", FN_PTR(Unsafe_SetObjectVolatile)}, + + + DECLARE_GETSETOOP(Boolean, Z), +@@ -1491,42 +1491,42 @@ + DECLARE_GETSETNATIVE(Float, F), + DECLARE_GETSETNATIVE(Double, D), + +- {CC"getAddress", CC"("ADR")"ADR, FN_PTR(Unsafe_GetNativeAddress)}, +- {CC"putAddress", CC"("ADR""ADR")V", FN_PTR(Unsafe_SetNativeAddress)}, ++ {CC"getAddress", CC"(" ADR ")" ADR, FN_PTR(Unsafe_GetNativeAddress)}, ++ {CC"putAddress", CC"(" ADR "" ADR ")V", FN_PTR(Unsafe_SetNativeAddress)}, + +- {CC"allocateMemory", CC"(J)"ADR, FN_PTR(Unsafe_AllocateMemory)}, +- {CC"reallocateMemory", CC"("ADR"J)"ADR, FN_PTR(Unsafe_ReallocateMemory)}, +- {CC"freeMemory", CC"("ADR")V", FN_PTR(Unsafe_FreeMemory)}, +- +- {CC"objectFieldOffset", CC"("FLD")J", FN_PTR(Unsafe_ObjectFieldOffset)}, +- {CC"staticFieldOffset", CC"("FLD")J", FN_PTR(Unsafe_StaticFieldOffset)}, +- {CC"staticFieldBase", CC"("FLD")"OBJ, FN_PTR(Unsafe_StaticFieldBaseFromField)}, +- {CC"ensureClassInitialized",CC"("CLS")V", FN_PTR(Unsafe_EnsureClassInitialized)}, +- {CC"arrayBaseOffset", CC"("CLS")I", FN_PTR(Unsafe_ArrayBaseOffset)}, +- {CC"arrayIndexScale", CC"("CLS")I", FN_PTR(Unsafe_ArrayIndexScale)}, ++ {CC"allocateMemory", CC"(J)" ADR, FN_PTR(Unsafe_AllocateMemory)}, ++ {CC"reallocateMemory", CC"(" ADR "J)" ADR, FN_PTR(Unsafe_ReallocateMemory)}, ++ {CC"freeMemory", CC"(" ADR ")V", FN_PTR(Unsafe_FreeMemory)}, ++ ++ {CC"objectFieldOffset", CC"(" FLD ")J", FN_PTR(Unsafe_ObjectFieldOffset)}, ++ {CC"staticFieldOffset", CC"(" FLD ")J", FN_PTR(Unsafe_StaticFieldOffset)}, ++ {CC"staticFieldBase", CC"(" FLD ")" OBJ, FN_PTR(Unsafe_StaticFieldBaseFromField)}, ++ {CC"ensureClassInitialized",CC"(" CLS ")V", FN_PTR(Unsafe_EnsureClassInitialized)}, ++ {CC"arrayBaseOffset", CC"(" CLS ")I", FN_PTR(Unsafe_ArrayBaseOffset)}, ++ {CC"arrayIndexScale", CC"(" CLS ")I", FN_PTR(Unsafe_ArrayIndexScale)}, + {CC"addressSize", CC"()I", FN_PTR(Unsafe_AddressSize)}, + {CC"pageSize", CC"()I", FN_PTR(Unsafe_PageSize)}, + +- {CC"defineClass", CC"("DC0_Args")"CLS, FN_PTR(Unsafe_DefineClass0)}, +- {CC"defineClass", CC"("DC_Args")"CLS, FN_PTR(Unsafe_DefineClass)}, +- {CC"allocateInstance", CC"("CLS")"OBJ, FN_PTR(Unsafe_AllocateInstance)}, +- {CC"monitorEnter", CC"("OBJ")V", FN_PTR(Unsafe_MonitorEnter)}, +- {CC"monitorExit", CC"("OBJ")V", FN_PTR(Unsafe_MonitorExit)}, +- {CC"throwException", CC"("THR")V", FN_PTR(Unsafe_ThrowException)}, +- {CC"compareAndSwapObject", CC"("OBJ"J"OBJ""OBJ")Z", FN_PTR(Unsafe_CompareAndSwapObject)}, +- {CC"compareAndSwapInt", CC"("OBJ"J""I""I"")Z", FN_PTR(Unsafe_CompareAndSwapInt)}, +- {CC"compareAndSwapLong", CC"("OBJ"J""J""J"")Z", FN_PTR(Unsafe_CompareAndSwapLong)}, ++ {CC"defineClass", CC"(" DC0_Args ")" CLS, FN_PTR(Unsafe_DefineClass0)}, ++ {CC"defineClass", CC"(" DC_Args ")" CLS, FN_PTR(Unsafe_DefineClass)}, ++ {CC"allocateInstance", CC"(" CLS ")" OBJ, FN_PTR(Unsafe_AllocateInstance)}, ++ {CC"monitorEnter", CC"(" OBJ ")V", FN_PTR(Unsafe_MonitorEnter)}, ++ {CC"monitorExit", CC"(" OBJ ")V", FN_PTR(Unsafe_MonitorExit)}, ++ {CC"throwException", CC"(" THR ")V", FN_PTR(Unsafe_ThrowException)}, ++ {CC"compareAndSwapObject", CC"(" OBJ "J" OBJ "" OBJ ")Z", FN_PTR(Unsafe_CompareAndSwapObject)}, ++ {CC"compareAndSwapInt", CC"(" OBJ "J""I""I"")Z", FN_PTR(Unsafe_CompareAndSwapInt)}, ++ {CC"compareAndSwapLong", CC"(" OBJ "J""J""J"")Z", FN_PTR(Unsafe_CompareAndSwapLong)}, + {CC"park", CC"(ZJ)V", FN_PTR(Unsafe_Park)}, +- {CC"unpark", CC"("OBJ")V", FN_PTR(Unsafe_Unpark)} ++ {CC"unpark", CC"(" OBJ ")V", FN_PTR(Unsafe_Unpark)} + + }; + + // These are the methods for 1.6.0 and 1.7.0 + static JNINativeMethod methods_16[] = { +- {CC"getObject", CC"("OBJ"J)"OBJ"", FN_PTR(Unsafe_GetObject)}, +- {CC"putObject", CC"("OBJ"J"OBJ")V", FN_PTR(Unsafe_SetObject)}, +- {CC"getObjectVolatile",CC"("OBJ"J)"OBJ"", FN_PTR(Unsafe_GetObjectVolatile)}, +- {CC"putObjectVolatile",CC"("OBJ"J"OBJ")V", FN_PTR(Unsafe_SetObjectVolatile)}, ++ {CC"getObject", CC"(" OBJ "J)" OBJ "", FN_PTR(Unsafe_GetObject)}, ++ {CC"putObject", CC"(" OBJ "J" OBJ ")V", FN_PTR(Unsafe_SetObject)}, ++ {CC"getObjectVolatile",CC"(" OBJ "J)" OBJ "", FN_PTR(Unsafe_GetObjectVolatile)}, ++ {CC"putObjectVolatile",CC"(" OBJ "J" OBJ ")V", FN_PTR(Unsafe_SetObjectVolatile)}, + + DECLARE_GETSETOOP(Boolean, Z), + DECLARE_GETSETOOP(Byte, B), +@@ -1545,45 +1545,45 @@ + DECLARE_GETSETNATIVE(Float, F), + DECLARE_GETSETNATIVE(Double, D), + +- {CC"getAddress", CC"("ADR")"ADR, FN_PTR(Unsafe_GetNativeAddress)}, +- {CC"putAddress", CC"("ADR""ADR")V", FN_PTR(Unsafe_SetNativeAddress)}, ++ {CC"getAddress", CC"(" ADR ")" ADR, FN_PTR(Unsafe_GetNativeAddress)}, ++ {CC"putAddress", CC"(" ADR "" ADR ")V", FN_PTR(Unsafe_SetNativeAddress)}, + +- {CC"allocateMemory", CC"(J)"ADR, FN_PTR(Unsafe_AllocateMemory)}, +- {CC"reallocateMemory", CC"("ADR"J)"ADR, FN_PTR(Unsafe_ReallocateMemory)}, +- {CC"freeMemory", CC"("ADR")V", FN_PTR(Unsafe_FreeMemory)}, +- +- {CC"objectFieldOffset", CC"("FLD")J", FN_PTR(Unsafe_ObjectFieldOffset)}, +- {CC"staticFieldOffset", CC"("FLD")J", FN_PTR(Unsafe_StaticFieldOffset)}, +- {CC"staticFieldBase", CC"("FLD")"OBJ, FN_PTR(Unsafe_StaticFieldBaseFromField)}, +- {CC"ensureClassInitialized",CC"("CLS")V", FN_PTR(Unsafe_EnsureClassInitialized)}, +- {CC"arrayBaseOffset", CC"("CLS")I", FN_PTR(Unsafe_ArrayBaseOffset)}, +- {CC"arrayIndexScale", CC"("CLS")I", FN_PTR(Unsafe_ArrayIndexScale)}, ++ {CC"allocateMemory", CC"(J)" ADR, FN_PTR(Unsafe_AllocateMemory)}, ++ {CC"reallocateMemory", CC"(" ADR "J)" ADR, FN_PTR(Unsafe_ReallocateMemory)}, ++ {CC"freeMemory", CC"(" ADR ")V", FN_PTR(Unsafe_FreeMemory)}, ++ ++ {CC"objectFieldOffset", CC"(" FLD ")J", FN_PTR(Unsafe_ObjectFieldOffset)}, ++ {CC"staticFieldOffset", CC"(" FLD ")J", FN_PTR(Unsafe_StaticFieldOffset)}, ++ {CC"staticFieldBase", CC"(" FLD ")" OBJ, FN_PTR(Unsafe_StaticFieldBaseFromField)}, ++ {CC"ensureClassInitialized",CC"(" CLS ")V", FN_PTR(Unsafe_EnsureClassInitialized)}, ++ {CC"arrayBaseOffset", CC"(" CLS ")I", FN_PTR(Unsafe_ArrayBaseOffset)}, ++ {CC"arrayIndexScale", CC"(" CLS ")I", FN_PTR(Unsafe_ArrayIndexScale)}, + {CC"addressSize", CC"()I", FN_PTR(Unsafe_AddressSize)}, + {CC"pageSize", CC"()I", FN_PTR(Unsafe_PageSize)}, + +- {CC"defineClass", CC"("DC0_Args")"CLS, FN_PTR(Unsafe_DefineClass0)}, +- {CC"defineClass", CC"("DC_Args")"CLS, FN_PTR(Unsafe_DefineClass)}, +- {CC"allocateInstance", CC"("CLS")"OBJ, FN_PTR(Unsafe_AllocateInstance)}, +- {CC"monitorEnter", CC"("OBJ")V", FN_PTR(Unsafe_MonitorEnter)}, +- {CC"monitorExit", CC"("OBJ")V", FN_PTR(Unsafe_MonitorExit)}, +- {CC"tryMonitorEnter", CC"("OBJ")Z", FN_PTR(Unsafe_TryMonitorEnter)}, +- {CC"throwException", CC"("THR")V", FN_PTR(Unsafe_ThrowException)}, +- {CC"compareAndSwapObject", CC"("OBJ"J"OBJ""OBJ")Z", FN_PTR(Unsafe_CompareAndSwapObject)}, +- {CC"compareAndSwapInt", CC"("OBJ"J""I""I"")Z", FN_PTR(Unsafe_CompareAndSwapInt)}, +- {CC"compareAndSwapLong", CC"("OBJ"J""J""J"")Z", FN_PTR(Unsafe_CompareAndSwapLong)}, +- {CC"putOrderedObject", CC"("OBJ"J"OBJ")V", FN_PTR(Unsafe_SetOrderedObject)}, +- {CC"putOrderedInt", CC"("OBJ"JI)V", FN_PTR(Unsafe_SetOrderedInt)}, +- {CC"putOrderedLong", CC"("OBJ"JJ)V", FN_PTR(Unsafe_SetOrderedLong)}, ++ {CC"defineClass", CC"(" DC0_Args ")" CLS, FN_PTR(Unsafe_DefineClass0)}, ++ {CC"defineClass", CC"(" DC_Args ")" CLS, FN_PTR(Unsafe_DefineClass)}, ++ {CC"allocateInstance", CC"(" CLS ")" OBJ, FN_PTR(Unsafe_AllocateInstance)}, ++ {CC"monitorEnter", CC"(" OBJ ")V", FN_PTR(Unsafe_MonitorEnter)}, ++ {CC"monitorExit", CC"(" OBJ ")V", FN_PTR(Unsafe_MonitorExit)}, ++ {CC"tryMonitorEnter", CC"(" OBJ ")Z", FN_PTR(Unsafe_TryMonitorEnter)}, ++ {CC"throwException", CC"(" THR ")V", FN_PTR(Unsafe_ThrowException)}, ++ {CC"compareAndSwapObject", CC"(" OBJ "J" OBJ "" OBJ ")Z", FN_PTR(Unsafe_CompareAndSwapObject)}, ++ {CC"compareAndSwapInt", CC"(" OBJ "J""I""I"")Z", FN_PTR(Unsafe_CompareAndSwapInt)}, ++ {CC"compareAndSwapLong", CC"(" OBJ "J""J""J"")Z", FN_PTR(Unsafe_CompareAndSwapLong)}, ++ {CC"putOrderedObject", CC"(" OBJ "J" OBJ ")V", FN_PTR(Unsafe_SetOrderedObject)}, ++ {CC"putOrderedInt", CC"(" OBJ "JI)V", FN_PTR(Unsafe_SetOrderedInt)}, ++ {CC"putOrderedLong", CC"(" OBJ "JJ)V", FN_PTR(Unsafe_SetOrderedLong)}, + {CC"park", CC"(ZJ)V", FN_PTR(Unsafe_Park)}, +- {CC"unpark", CC"("OBJ")V", FN_PTR(Unsafe_Unpark)} ++ {CC"unpark", CC"(" OBJ ")V", FN_PTR(Unsafe_Unpark)} + }; + + // These are the methods for 1.8.0 + static JNINativeMethod methods_18[] = { +- {CC"getObject", CC"("OBJ"J)"OBJ"", FN_PTR(Unsafe_GetObject)}, +- {CC"putObject", CC"("OBJ"J"OBJ")V", FN_PTR(Unsafe_SetObject)}, +- {CC"getObjectVolatile",CC"("OBJ"J)"OBJ"", FN_PTR(Unsafe_GetObjectVolatile)}, +- {CC"putObjectVolatile",CC"("OBJ"J"OBJ")V", FN_PTR(Unsafe_SetObjectVolatile)}, ++ {CC"getObject", CC"(" OBJ "J)" OBJ "", FN_PTR(Unsafe_GetObject)}, ++ {CC"putObject", CC"(" OBJ "J" OBJ ")V", FN_PTR(Unsafe_SetObject)}, ++ {CC"getObjectVolatile",CC"(" OBJ "J)" OBJ "", FN_PTR(Unsafe_GetObjectVolatile)}, ++ {CC"putObjectVolatile",CC"(" OBJ "J" OBJ ")V", FN_PTR(Unsafe_SetObjectVolatile)}, + + DECLARE_GETSETOOP(Boolean, Z), + DECLARE_GETSETOOP(Byte, B), +@@ -1602,36 +1602,36 @@ + DECLARE_GETSETNATIVE(Float, F), + DECLARE_GETSETNATIVE(Double, D), + +- {CC"getAddress", CC"("ADR")"ADR, FN_PTR(Unsafe_GetNativeAddress)}, +- {CC"putAddress", CC"("ADR""ADR")V", FN_PTR(Unsafe_SetNativeAddress)}, ++ {CC"getAddress", CC"(" ADR ")" ADR, FN_PTR(Unsafe_GetNativeAddress)}, ++ {CC"putAddress", CC"(" ADR "" ADR ")V", FN_PTR(Unsafe_SetNativeAddress)}, + +- {CC"allocateMemory", CC"(J)"ADR, FN_PTR(Unsafe_AllocateMemory)}, +- {CC"reallocateMemory", CC"("ADR"J)"ADR, FN_PTR(Unsafe_ReallocateMemory)}, +- {CC"freeMemory", CC"("ADR")V", FN_PTR(Unsafe_FreeMemory)}, +- +- {CC"objectFieldOffset", CC"("FLD")J", FN_PTR(Unsafe_ObjectFieldOffset)}, +- {CC"staticFieldOffset", CC"("FLD")J", FN_PTR(Unsafe_StaticFieldOffset)}, +- {CC"staticFieldBase", CC"("FLD")"OBJ, FN_PTR(Unsafe_StaticFieldBaseFromField)}, +- {CC"ensureClassInitialized",CC"("CLS")V", FN_PTR(Unsafe_EnsureClassInitialized)}, +- {CC"arrayBaseOffset", CC"("CLS")I", FN_PTR(Unsafe_ArrayBaseOffset)}, +- {CC"arrayIndexScale", CC"("CLS")I", FN_PTR(Unsafe_ArrayIndexScale)}, ++ {CC"allocateMemory", CC"(J)" ADR, FN_PTR(Unsafe_AllocateMemory)}, ++ {CC"reallocateMemory", CC"(" ADR "J)" ADR, FN_PTR(Unsafe_ReallocateMemory)}, ++ {CC"freeMemory", CC"(" ADR ")V", FN_PTR(Unsafe_FreeMemory)}, ++ ++ {CC"objectFieldOffset", CC"(" FLD ")J", FN_PTR(Unsafe_ObjectFieldOffset)}, ++ {CC"staticFieldOffset", CC"(" FLD ")J", FN_PTR(Unsafe_StaticFieldOffset)}, ++ {CC"staticFieldBase", CC"(" FLD ")" OBJ, FN_PTR(Unsafe_StaticFieldBaseFromField)}, ++ {CC"ensureClassInitialized",CC"(" CLS ")V", FN_PTR(Unsafe_EnsureClassInitialized)}, ++ {CC"arrayBaseOffset", CC"(" CLS ")I", FN_PTR(Unsafe_ArrayBaseOffset)}, ++ {CC"arrayIndexScale", CC"(" CLS ")I", FN_PTR(Unsafe_ArrayIndexScale)}, + {CC"addressSize", CC"()I", FN_PTR(Unsafe_AddressSize)}, + {CC"pageSize", CC"()I", FN_PTR(Unsafe_PageSize)}, + +- {CC"defineClass", CC"("DC_Args")"CLS, FN_PTR(Unsafe_DefineClass)}, +- {CC"allocateInstance", CC"("CLS")"OBJ, FN_PTR(Unsafe_AllocateInstance)}, +- {CC"monitorEnter", CC"("OBJ")V", FN_PTR(Unsafe_MonitorEnter)}, +- {CC"monitorExit", CC"("OBJ")V", FN_PTR(Unsafe_MonitorExit)}, +- {CC"tryMonitorEnter", CC"("OBJ")Z", FN_PTR(Unsafe_TryMonitorEnter)}, +- {CC"throwException", CC"("THR")V", FN_PTR(Unsafe_ThrowException)}, +- {CC"compareAndSwapObject", CC"("OBJ"J"OBJ""OBJ")Z", FN_PTR(Unsafe_CompareAndSwapObject)}, +- {CC"compareAndSwapInt", CC"("OBJ"J""I""I"")Z", FN_PTR(Unsafe_CompareAndSwapInt)}, +- {CC"compareAndSwapLong", CC"("OBJ"J""J""J"")Z", FN_PTR(Unsafe_CompareAndSwapLong)}, +- {CC"putOrderedObject", CC"("OBJ"J"OBJ")V", FN_PTR(Unsafe_SetOrderedObject)}, +- {CC"putOrderedInt", CC"("OBJ"JI)V", FN_PTR(Unsafe_SetOrderedInt)}, +- {CC"putOrderedLong", CC"("OBJ"JJ)V", FN_PTR(Unsafe_SetOrderedLong)}, ++ {CC"defineClass", CC"(" DC_Args ")" CLS, FN_PTR(Unsafe_DefineClass)}, ++ {CC"allocateInstance", CC"(" CLS ")" OBJ, FN_PTR(Unsafe_AllocateInstance)}, ++ {CC"monitorEnter", CC"(" OBJ ")V", FN_PTR(Unsafe_MonitorEnter)}, ++ {CC"monitorExit", CC"(" OBJ ")V", FN_PTR(Unsafe_MonitorExit)}, ++ {CC"tryMonitorEnter", CC"(" OBJ ")Z", FN_PTR(Unsafe_TryMonitorEnter)}, ++ {CC"throwException", CC"(" THR ")V", FN_PTR(Unsafe_ThrowException)}, ++ {CC"compareAndSwapObject", CC"(" OBJ "J" OBJ "" OBJ ")Z", FN_PTR(Unsafe_CompareAndSwapObject)}, ++ {CC"compareAndSwapInt", CC"(" OBJ "J""I""I"")Z", FN_PTR(Unsafe_CompareAndSwapInt)}, ++ {CC"compareAndSwapLong", CC"(" OBJ "J""J""J"")Z", FN_PTR(Unsafe_CompareAndSwapLong)}, ++ {CC"putOrderedObject", CC"(" OBJ "J" OBJ ")V", FN_PTR(Unsafe_SetOrderedObject)}, ++ {CC"putOrderedInt", CC"(" OBJ "JI)V", FN_PTR(Unsafe_SetOrderedInt)}, ++ {CC"putOrderedLong", CC"(" OBJ "JJ)V", FN_PTR(Unsafe_SetOrderedLong)}, + {CC"park", CC"(ZJ)V", FN_PTR(Unsafe_Park)}, +- {CC"unpark", CC"("OBJ")V", FN_PTR(Unsafe_Unpark)} ++ {CC"unpark", CC"(" OBJ ")V", FN_PTR(Unsafe_Unpark)} + }; + + JNINativeMethod loadavg_method[] = { +@@ -1639,28 +1639,28 @@ + }; + + JNINativeMethod prefetch_methods[] = { +- {CC"prefetchRead", CC"("OBJ"J)V", FN_PTR(Unsafe_PrefetchRead)}, +- {CC"prefetchWrite", CC"("OBJ"J)V", FN_PTR(Unsafe_PrefetchWrite)}, +- {CC"prefetchReadStatic", CC"("OBJ"J)V", FN_PTR(Unsafe_PrefetchRead)}, +- {CC"prefetchWriteStatic",CC"("OBJ"J)V", FN_PTR(Unsafe_PrefetchWrite)} ++ {CC"prefetchRead", CC"(" OBJ "J)V", FN_PTR(Unsafe_PrefetchRead)}, ++ {CC"prefetchWrite", CC"(" OBJ "J)V", FN_PTR(Unsafe_PrefetchWrite)}, ++ {CC"prefetchReadStatic", CC"(" OBJ "J)V", FN_PTR(Unsafe_PrefetchRead)}, ++ {CC"prefetchWriteStatic",CC"(" OBJ "J)V", FN_PTR(Unsafe_PrefetchWrite)} + }; + + JNINativeMethod memcopy_methods_17[] = { +- {CC"copyMemory", CC"("OBJ"J"OBJ"JJ)V", FN_PTR(Unsafe_CopyMemory2)}, +- {CC"setMemory", CC"("OBJ"JJB)V", FN_PTR(Unsafe_SetMemory2)} ++ {CC"copyMemory", CC"(" OBJ "J" OBJ "JJ)V", FN_PTR(Unsafe_CopyMemory2)}, ++ {CC"setMemory", CC"(" OBJ "JJB)V", FN_PTR(Unsafe_SetMemory2)} + }; + + JNINativeMethod memcopy_methods_15[] = { +- {CC"setMemory", CC"("ADR"JB)V", FN_PTR(Unsafe_SetMemory)}, +- {CC"copyMemory", CC"("ADR ADR"J)V", FN_PTR(Unsafe_CopyMemory)} ++ {CC"setMemory", CC"(" ADR "JB)V", FN_PTR(Unsafe_SetMemory)}, ++ {CC"copyMemory", CC"(" ADR ADR "J)V", FN_PTR(Unsafe_CopyMemory)} + }; + + JNINativeMethod anonk_methods[] = { +- {CC"defineAnonymousClass", CC"("DAC_Args")"CLS, FN_PTR(Unsafe_DefineAnonymousClass)}, ++ {CC"defineAnonymousClass", CC"(" DAC_Args ")" CLS, FN_PTR(Unsafe_DefineAnonymousClass)}, + }; + + JNINativeMethod lform_methods[] = { +- {CC"shouldBeInitialized",CC"("CLS")Z", FN_PTR(Unsafe_ShouldBeInitialized)}, ++ {CC"shouldBeInitialized",CC"(" CLS ")Z", FN_PTR(Unsafe_ShouldBeInitialized)}, + }; + + JNINativeMethod fence_methods[] = { +--- hotspot/src/share/vm/prims/whitebox.cpp.orig 2015-09-02 18:55:43.000000000 +0200 ++++ hotspot/src/share/vm/prims/whitebox.cpp 2015-09-02 18:58:04.000000000 +0200 +@@ -157,8 +157,8 @@ + + WB_ENTRY(void, WB_PrintHeapSizes(JNIEnv* env, jobject o)) { + CollectorPolicy * p = Universe::heap()->collector_policy(); +- gclog_or_tty->print_cr("Minimum heap "SIZE_FORMAT" Initial heap " +- SIZE_FORMAT" Maximum heap "SIZE_FORMAT" Min alignment "SIZE_FORMAT" Max alignment "SIZE_FORMAT, ++ gclog_or_tty->print_cr("Minimum heap " SIZE_FORMAT " Initial heap " ++ SIZE_FORMAT " Maximum heap " SIZE_FORMAT " Min alignment " SIZE_FORMAT " Max alignment " SIZE_FORMAT, + p->min_heap_byte_size(), p->initial_heap_byte_size(), p->max_heap_byte_size(), + p->space_alignment(), p->heap_alignment()); + } +@@ -193,8 +193,8 @@ + Universe::narrow_oop_use_implicit_null_checks() )) { + tty->print_cr("WB_ReadFromNoaccessArea method is useless:\n " + "\tUseCompressedOops is %d\n" +- "\trhs.base() is "PTR_FORMAT"\n" +- "\tUniverse::narrow_oop_base() is "PTR_FORMAT"\n" ++ "\trhs.base() is " PTR_FORMAT "\n" ++ "\tUniverse::narrow_oop_base() is " PTR_FORMAT "\n" + "\tUniverse::narrow_oop_use_implicit_null_checks() is %d", + UseCompressedOops, + rhs.base(), +@@ -247,8 +247,8 @@ + + WB_ENTRY(jint, WB_StressVirtualSpaceResize(JNIEnv* env, jobject o, + jlong reserved_space_size, jlong magnitude, jlong iterations)) +- tty->print_cr("reservedSpaceSize="JLONG_FORMAT", magnitude="JLONG_FORMAT", " +- "iterations="JLONG_FORMAT"\n", reserved_space_size, magnitude, ++ tty->print_cr("reservedSpaceSize=" JLONG_FORMAT ", magnitude=" JLONG_FORMAT ", " ++ "iterations=" JLONG_FORMAT "\n", reserved_space_size, magnitude, + iterations); + if (reserved_space_size < 0 || magnitude < 0 || iterations < 0) { + tty->print_cr("One of variables printed above is negative. Can't proceed.\n"); +--- hotspot/src/share/vm/oops/markOop.cpp.orig 2015-09-10 13:28:34.918039653 +0200 ++++ hotspot/src/share/vm/oops/markOop.cpp 2015-09-10 13:29:26.890039849 +0200 +@@ -49,7 +49,7 @@ + st->print("monitor=NULL"); + else { + BasicLock * bl = (BasicLock *) mon->owner(); +- st->print("monitor={count="INTPTR_FORMAT",waiters="INTPTR_FORMAT",recursions="INTPTR_FORMAT",owner="INTPTR_FORMAT"}", ++ st->print("monitor={count=" INTPTR_FORMAT ",waiters=" INTPTR_FORMAT ",recursions=" INTPTR_FORMAT ",owner=" INTPTR_FORMAT "}", + mon->count(), mon->waiters(), mon->recursions(), p2i(bl)); + } + } else { diff --git a/recipes-core/openjdk/patches-openjdk-8/openjdk8-no-genx11-in-headless.patch b/recipes-core/openjdk/patches-openjdk-8/openjdk8-no-genx11-in-headless.patch new file mode 100644 index 0000000..e34305c --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/openjdk8-no-genx11-in-headless.patch @@ -0,0 +1,17 @@ +--- jdk/make/GenerateSources.gmk.orig 2015-08-24 11:23:34.720648954 +0200 ++++ jdk/make/GenerateSources.gmk 2015-08-24 11:24:41.376649205 +0200 +@@ -73,9 +73,11 @@ + GENSRC += $(GENSRC_OSX_ICONS) + endif + +- ifneq ($(OPENJDK_TARGET_OS), macosx) +- include gensrc/GensrcX11Wrappers.gmk +- GENSRC += $(GENSRC_X11WRAPPERS) ++ ifndef BUILD_HEADLESS_ONLY ++ ifneq ($(OPENJDK_TARGET_OS), macosx) ++ include gensrc/GensrcX11Wrappers.gmk ++ GENSRC += $(GENSRC_X11WRAPPERS) ++ endif + endif + endif + diff --git a/recipes-core/openjdk/patches-openjdk-8/openjdk8-no-unused-deps.patch b/recipes-core/openjdk/patches-openjdk-8/openjdk8-no-unused-deps.patch new file mode 100644 index 0000000..cd42544 --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/openjdk8-no-unused-deps.patch @@ -0,0 +1,94 @@ +--- jdk/make/lib/Awt2dLibraries.gmk.orig 2015-09-03 15:05:21.429981848 +0200 ++++ jdk/make/lib/Awt2dLibraries.gmk 2015-09-03 15:05:44.705981936 +0200 +@@ -235,6 +235,10 @@ + LIBAWT_DIRS += $(JDK_TOPDIR)/src/aix/porting + endif + ++ifdef BUILD_HEADLESS_ONLY ++LIBAWT_CFLAGS += -DHEADLESS=true ++endif ++ + LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES \ + $(X_CFLAGS) \ + $(foreach dir, $(LIBAWT_DIRS), -I$(dir)) +@@ -1126,17 +1130,28 @@ + -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks + endif + +- LIBAWT_HEADLESS_FILES := \ +- awt_Font.c \ +- HeadlessToolkit.c \ +- fontpath.c \ +- VDrawingArea.c \ ++ ifndef X11_NOT_NEEDED ++ LIBAWT_HEADLESS_X11_FILES := \ + X11Color.c \ + X11Renderer.c \ + X11PMBlitLoops.c \ + X11SurfaceData.c \ + X11FontScaler_md.c \ + X11TextRenderer_md.c \ ++ GLXGraphicsConfig.c \ ++ GLXSurfaceData.c ++ endif ++ ++ ifndef CUPS_NOT_NEEDED ++ LIBAWT_HEADLESS_CUPS_FILES := \ ++ CUPSfuncs.c ++ endif ++ ++ LIBAWT_HEADLESS_FILES := \ ++ awt_Font.c \ ++ HeadlessToolkit.c \ ++ fontpath.c \ ++ VDrawingArea.c \ + OGLBlitLoops.c \ + OGLBufImgOps.c \ + OGLContext.c \ +@@ -1149,10 +1164,9 @@ + OGLSurfaceData.c \ + OGLTextRenderer.c \ + OGLVertexCache.c \ +- GLXGraphicsConfig.c \ +- GLXSurfaceData.c \ + AccelGlyphCache.c \ +- CUPSfuncs.c ++ $(LIBAWT_HEADLESS_X11_FILES) \ ++ $(LIBAWT_HEADLESS_CUPS_FILES) + + LIBAWT_HEADLESS_REORDER := + ifeq ($(OPENJDK_TARGET_OS), solaris) +--- jdk/make/CompileNativeLibraries.gmk.orig 2015-08-24 13:35:55.320678845 +0200 ++++ jdk/make/CompileNativeLibraries.gmk 2015-08-24 13:36:22.776678949 +0200 +@@ -85,7 +85,9 @@ + + include lib/Awt2dLibraries.gmk + ++ifndef BUILD_SOUNDLESS_ONLY + include lib/SoundLibraries.gmk ++endif + + # Include the corresponding custom file, if present. + -include $(CUSTOM_MAKE_DIR)/CompileNativeLibraries.gmk +--- jdk/src/solaris/native/sun/awt/jawt.c.orig 2015-08-24 14:12:29.376687104 +0200 ++++ jdk/src/solaris/native/sun/awt/jawt.c 2015-08-24 14:16:20.420687974 +0200 +@@ -33,7 +33,7 @@ + */ + JNIEXPORT jboolean JNICALL JAWT_GetAWT(JNIEnv* env, JAWT* awt) + { +-#if defined(JAVASE_EMBEDDED) && defined(HEADLESS) ++#if defined(JAVASE_EMBEDDED) || defined(HEADLESS) + /* there are no AWT libs available at all */ + return JNI_FALSE; + #else +--- jdk/src/solaris/native/sun/awt/utility/rect.h.orig 2015-09-03 14:45:40.717977403 +0200 ++++ jdk/src/solaris/native/sun/awt/utility/rect.h 2015-09-03 14:46:46.337977650 +0200 +@@ -28,7 +28,7 @@ + #ifndef _AWT_RECT_H + #define _AWT_RECT_H + +-#ifndef MACOSX ++#if !(defined(MACOSX) || defined(HEADLESS)) + #include + typedef XRectangle RECT_T; + #else diff --git a/recipes-core/openjdk/patches-openjdk-8/openjdk8-prevent-debuginfo-in-favour-of-openembedded-package-split.patch b/recipes-core/openjdk/patches-openjdk-8/openjdk8-prevent-debuginfo-in-favour-of-openembedded-package-split.patch new file mode 100644 index 0000000..3a71403 --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/openjdk8-prevent-debuginfo-in-favour-of-openembedded-package-split.patch @@ -0,0 +1,120 @@ +--- make/common/NativeCompilation.gmk.orig 2015-09-09 17:15:33.869765681 +0200 ++++ make/common/NativeCompilation.gmk 2015-09-09 17:55:26.485774688 +0200 +@@ -434,58 +434,6 @@ + $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% + $(CP) $$< $$@ + endif +- +- ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X +- ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows +- ifeq ($(OPENJDK_TARGET_OS), solaris) +- # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. +- # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from +- # empty section headers until a fixed $(OBJCOPY) is available. +- # An empty section header has sh_addr == 0 and sh_size == 0. +- # This problem has only been seen on Solaris X64, but we call this tool +- # on all Solaris builds just in case. +- # +- # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. +- # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. +- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) \ +- $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK) +- $(RM) $$@ +- $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$< +- $(OBJCOPY) --only-keep-debug $$< $$@ +- $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$< +- else # not solaris +- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) +- $(RM) $$@ +- $(OBJCOPY) --only-keep-debug $$< $$@ +- $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$< +- endif # Touch to not retrigger rule on rebuild +- $(TOUCH) $$@ +- endif # !windows +- endif # !macosx +- +- ifeq ($(ZIP_DEBUGINFO_FILES), true) +-ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet +- $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz +- +- ifeq ($(OPENJDK_TARGET_OS), windows) +- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz : $$($1_TARGET) +- $(CD) $$($1_OBJECT_DIR) \ +- && $(ZIP) -q $$@ $$($1_LIBRARY).map $$($1_LIBRARY).pdb +- else +- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz : $$($1_TARGET) \ +- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo +- $(CD) $$($1_OBJECT_DIR) \ +- && $(ZIP) -q $$@ $$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo +- endif +-endif # no MacOS X support yet +- else +- ifeq ($(OPENJDK_TARGET_OS), windows) +- $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \ +- $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb +- else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo files +- $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo +- endif +- endif + endif + endif + +@@ -518,58 +466,6 @@ + $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% + $(CP) $$< $$@ + endif +- +- ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X +- ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows +- ifeq ($(OPENJDK_TARGET_OS), solaris) +- # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. +- # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from +- # empty section headers until a fixed $(OBJCOPY) is available. +- # An empty section header has sh_addr == 0 and sh_size == 0. +- # This problem has only been seen on Solaris X64, but we call this tool +- # on all Solaris builds just in case. +- # +- # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. +- # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. +- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \ +- $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK) +- $(RM) $$@ +- $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$< +- $(OBJCOPY) --only-keep-debug $$< $$@ +- $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$< +- else # not solaris +- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) +- $(RM) $$@ +- $(OBJCOPY) --only-keep-debug $$< $$@ +- $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$< +- endif +- $(TOUCH) $$@ +- endif # !windows +- endif # !macosx +- +- ifeq ($(ZIP_DEBUGINFO_FILES), true) +-ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet +- $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).diz +- +- ifeq ($(OPENJDK_TARGET_OS), windows) +- $$($1_OBJECT_DIR)/$$($1_PROGRAM).diz : $$($1_TARGET) +- $(CD) $$($1_OBJECT_DIR) \ +- && $(ZIP) -q $$@ $$($1_PROGRAM).map $$($1_PROGRAM).pdb +- else +- $$($1_OBJECT_DIR)/$$(PROGRAM_PREFIX)$$($1_PROGRAM).diz : $$($1_TARGET) \ +- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo +- $(CD) $$($1_OBJECT_DIR) \ +- && $(ZIP) -q $$@ $$($1_PROGRAM).debuginfo +- endif +-endif # no MacOS X support yet +- else +- ifeq ($(OPENJDK_TARGET_OS), windows) +- $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).map \ +- $$($1_OUTPUT_DIR)/$$($1_PROGRAM).pdb +- else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo files +- $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo +- endif +- endif + endif + endif + diff --git a/recipes-core/openjdk/patches-openjdk-8/openjdk8-restrict-to-staging-dir.patch b/recipes-core/openjdk/patches-openjdk-8/openjdk8-restrict-to-staging-dir.patch new file mode 100644 index 0000000..d33dc96 --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/openjdk8-restrict-to-staging-dir.patch @@ -0,0 +1,11 @@ +--- hotspot/make/linux/makefiles/dtrace.make.orig 2015-09-01 08:00:59.737868760 +0200 ++++ hotspot/make/linux/makefiles/dtrace.make 2015-09-01 08:01:24.049859677 +0200 +@@ -40,7 +40,7 @@ + ifneq ($(ALT_SDT_H),) + SDT_H_FILE = $(ALT_SDT_H) + else +- SDT_H_FILE = /usr/include/sys/sdt.h ++ SDT_H_FILE = $(SYS_ROOT)/usr/include/sys/sdt.h + endif + DTRACE_ENABLED = $(shell test -f $(SDT_H_FILE) && echo $(SDT_H_FILE)) + REASON = "$(SDT_H_FILE) not found" diff --git a/recipes-core/openjdk/patches-openjdk-8/openjdk8-use_builtin_frame_address_0_rather_than_returning_address_of_local_variable.patch b/recipes-core/openjdk/patches-openjdk-8/openjdk8-use_builtin_frame_address_0_rather_than_returning_address_of_local_variable.patch new file mode 100644 index 0000000..f3dc864 --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/openjdk8-use_builtin_frame_address_0_rather_than_returning_address_of_local_variable.patch @@ -0,0 +1,23 @@ +# HG changeset patch +# User sgehwolf +# Date 1434121785 -3600 +# Node ID 6217fd2c767b467641bf7b41a9c37273e8fa0cbd +# Parent ff0929a59ced0e144201aa05819ae2e47d6f2c61 +8087120: [GCC5] java.lang.StackOverflowError on Zero JVM initialization on non x86 platforms. +Summary: Use __builtin_frame_address(0) rather than returning address of local variable. +Reviewed-by: dholmes + +diff -r ff0929a59ced -r 6217fd2c767b src/os_cpu/linux_zero/vm/os_linux_zero.cpp +--- hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp.orig Thu Jun 11 20:19:26 2015 -0700 ++++ hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Fri Jun 12 16:09:45 2015 +0100 +@@ -59,8 +59,8 @@ + extern sigjmp_buf* get_jmp_buf_for_continuation(); + + address os::current_stack_pointer() { +- address dummy = (address) &dummy; +- return dummy; ++ // return the address of the current function ++ return (address)__builtin_frame_address(0); + } + + frame os::get_sender_for_C_frame(frame* fr) { diff --git a/recipes-core/openjdk/patches-openjdk-8/remove-shell-variables-from-autoheader.patch b/recipes-core/openjdk/patches-openjdk-8/remove-shell-variables-from-autoheader.patch new file mode 100644 index 0000000..92a9831 --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/remove-shell-variables-from-autoheader.patch @@ -0,0 +1,31 @@ +--- common/autoconf/basics.m4.orig 2015-08-17 18:02:01.642657746 +0200 ++++ common/autoconf/basics.m4 2015-08-17 18:14:44.046660616 +0200 +@@ -466,21 +466,21 @@ + AC_SUBST(OUTPUT_ROOT, $OUTPUT_ROOT) + + # Most of the probed defines are put into config.h +- AC_CONFIG_HEADERS([$OUTPUT_ROOT/config.h:$AUTOCONF_DIR/config.h.in]) ++ AC_CONFIG_HEADERS([config.h:config.h.in]) + # The spec.gmk file contains all variables for the make system. +- AC_CONFIG_FILES([$OUTPUT_ROOT/spec.gmk:$AUTOCONF_DIR/spec.gmk.in]) ++ AC_CONFIG_FILES([spec.gmk:spec.gmk.in]) + # The hotspot-spec.gmk file contains legacy variables for the hotspot make system. +- AC_CONFIG_FILES([$OUTPUT_ROOT/hotspot-spec.gmk:$AUTOCONF_DIR/hotspot-spec.gmk.in]) ++ AC_CONFIG_FILES([hotspot-spec.gmk:hotspot-spec.gmk.in]) + # The bootcycle-spec.gmk file contains support for boot cycle builds. +- AC_CONFIG_FILES([$OUTPUT_ROOT/bootcycle-spec.gmk:$AUTOCONF_DIR/bootcycle-spec.gmk.in]) ++ AC_CONFIG_FILES([bootcycle-spec.gmk:bootcycle-spec.gmk.in]) + # The compare.sh is used to compare the build output to other builds. +- AC_CONFIG_FILES([$OUTPUT_ROOT/compare.sh:$AUTOCONF_DIR/compare.sh.in]) ++ AC_CONFIG_FILES([compare.sh:compare.sh.in]) + # Spec.sh is currently used by compare-objects.sh +- AC_CONFIG_FILES([$OUTPUT_ROOT/spec.sh:$AUTOCONF_DIR/spec.sh.in]) ++ AC_CONFIG_FILES([spec.sh:spec.sh.in]) + # The generated Makefile knows where the spec.gmk is and where the source is. + # You can run make from the OUTPUT_ROOT, or from the top-level Makefile + # which will look for generated configurations +- AC_CONFIG_FILES([$OUTPUT_ROOT/Makefile:$AUTOCONF_DIR/Makefile.in]) ++ AC_CONFIG_FILES([Makefile:Makefile.in]) + + # Save the arguments given to us + echo "$CONFIGURE_COMMAND_LINE" > $OUTPUT_ROOT/configure-arguments -- cgit v1.2.3-54-g00ecf