Hello community, here is the log from the commit of package java-1_8_0-openjdk for openSUSE:Factory checked in at 2014-08-07 12:37:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/java-1_8_0-openjdk (Old) and /work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "java-1_8_0-openjdk" Changes: -------- New Changes file: --- /dev/null 2014-07-24 01:57:42.080040256 +0200 +++ /work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new/java-1_8_0-openjdk.changes 2014-08-07 12:37:58.000000000 +0200 @@ -0,0 +1,48 @@ +------------------------------------------------------------------- +Fri Jul 18 07:21:20 UTC 2014 - fst...@suse.com + +- Upgrade to upstream tag jdk8u20-b23 + * Security updates from 15 July 2014 +- Removed patch: voidreturn.patch + * Integrated upstream +- Re-diffed patch: java-atk-wrapper-security.patch + * Re-diff to correspond to the new changes +- Modify accessibility post script to actually create the + corresponding symlinks + +------------------------------------------------------------------- +Tue Jul 15 08:03:53 UTC 2014 - fst...@suse.com + +- Initial package built from upstream OpenJDK + * Version 1.8.0.20~b22 + * Sources from http://hg.openjdk.java.net/jdk8u/jdk8u20/ + tag jdk8u20-b22 +- Initial bug-/build-fix patches + * 1015432.patch + * aarch64-jni-update.patch + * aarch64-misc.patch + * adlc-parser.patch + * applet-hole.patch + * compare-pointer-with-literal.patch + * disable-doclint-by-default.patch + * hotspot-build-j-directive.patch + * implicit-pointer-decl.patch + * include-all-srcs.patch + * java-atk-wrapper-security.patch + * link-with-as-needed.patch + * memory-limits.patch + * multiple-pkcs11-library-init.patch + * ppc-zero-hotspot.patch + * PStack-808293.patch + * s390-java-opts.patch + * s390-size_t.patch + * system-giflib5.patch + * system-lcms.patch + * system-libjpeg.patch + * system-libpng.patch + * voidreturn.patch +- Added aarch64 hotspot from the tip of + http://hg.openjdk.java.net/aarch64-port/jdk8/hotspot +- Added pulseaudio provider from the tip of + http://icedtea.classpath.org/hg/icedtea-sound/ + New: ---- 1015432.patch 5c1d6da1445a.tar.bz2 86856b2e3d18.tar.bz2 919405d7316d.tar.bz2 PStack-808293.patch TestCryptoLevel.java aarch64-jni-update.patch aarch64-misc.patch ad36f9454ce3.tar.bz2 adlc-parser.patch applet-hole.patch b14daf2459c5.tar.bz2 be30cb2a3088.tar.bz2 c5b8254a0fe2.tar.bz2 compare-pointer-with-literal.patch config.guess config.sub d6ded60cfdc5.tar.bz2 disable-doclint-by-default.patch f09d1f6a401e.tar.bz2 f3bf1b270fea.tar.bz2 hotspot-build-j-directive.patch implicit-pointer-decl.patch include-all-srcs.patch java-1_8_0-openjdk.changes java-1_8_0-openjdk.spec java-atk-wrapper-security.patch jconsole.desktop.in link-with-as-needed.patch memory-limits.patch multiple-pkcs11-library-init.patch nss.cfg policytool.desktop.in ppc-zero-hotspot.patch s390-java-opts.patch s390-size_t.patch system-giflib5.patch system-lcms.patch system-libjpeg.patch system-libpng.patch systemtap-tapset.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ java-1_8_0-openjdk.spec ++++++ ++++ 1174 lines (skipped) ++++++ 1015432.patch ++++++ --- jdk8/hotspot/src/os/linux/vm/os_linux.cpp Wed Oct 23 15:44:12 2013 -0700 +++ jdk8/hotspot/src/os/linux/vm/os_linux.cpp Thu Dec 19 16:03:33 2013 +0000 @@ -4797,9 +4797,19 @@ // size. Add a page for compiler2 recursion in main thread. // Add in 2*BytesPerWord times page size to account for VM stack during // class initialization depending on 32 or 64 bit VM. + + os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed, (size_t)(StackYellowPages+StackRedPages+StackShadowPages) * Linux::page_size() + - (2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::vm_default_page_size()); + (2*BytesPerWord COMPILER2_PRESENT(+1)) + * +#ifdef PPC + NOT_ZERO ( Linux::vm_default_page_size() ) + ZERO_ONLY ( Linux::page_size() ) +#else + ( Linux::vm_default_page_size() ) +#endif + ); size_t threadStackSizeInBytes = ThreadStackSize * K; if (threadStackSizeInBytes != 0 && ++++++ PStack-808293.patch ++++++ --- jdk8/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java 2012-04-06 02:26:33.322164601 +0200 +++ jdk8/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java 2012-04-06 02:26:57.958514071 +0200 @@ -1,5 +1,6 @@ /* * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, Red Hat Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -84,7 +85,8 @@ out.print("----------------- "); out.print(th); out.println(" -----------------"); - while (f != null) { + int maxStack = 256; + while (f != null && maxStack-- > 0) { ClosestSymbol sym = f.closestSymbolToPC(); Address pc = f.pc(); out.print(pc + "\t"); @@ -158,10 +160,19 @@ } } } + Address oldPC = f.pc(); + Address oldFP = f.localVariableBase(); f = f.sender(th); + if (f != null + && oldPC.equals(f.pc()) + && oldFP.equals(f.localVariableBase())) { + // We didn't make any progress + f = null; + } } } catch (Exception exp) { - exp.printStackTrace(); + // exp.printStackTrace(); + out.println("bad stack: " + exp); // continue, may be we can do a better job for other threads } if (concurrentLocks) { ++++++ TestCryptoLevel.java ++++++ /* TestCryptoLevel -- Ensure unlimited crypto policy is in use. Copyright (C) 2012 Red Hat, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; import java.security.Permission; import java.security.PermissionCollection; public class TestCryptoLevel { public static void main(String[] args) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InvocationTargetException { Class<?> cls = null; Method def = null, exempt = null; try { cls = Class.forName("javax.crypto.JceSecurity"); } catch (ClassNotFoundException ex) { System.err.println("Running a non-Sun JDK."); System.exit(0); } try { def = cls.getDeclaredMethod("getDefaultPolicy"); exempt = cls.getDeclaredMethod("getExemptPolicy"); } catch (NoSuchMethodException ex) { System.err.println("Running IcedTea with the original crypto patch."); System.exit(0); } def.setAccessible(true); exempt.setAccessible(true); PermissionCollection defPerms = (PermissionCollection) def.invoke(null); PermissionCollection exemptPerms = (PermissionCollection) exempt.invoke(null); Class<?> apCls = Class.forName("javax.crypto.CryptoAllPermission"); Field apField = apCls.getDeclaredField("INSTANCE"); apField.setAccessible(true); Permission allPerms = (Permission) apField.get(null); if (defPerms.implies(allPerms) && (exemptPerms == null || exemptPerms.implies(allPerms))) { System.err.println("Running with the unlimited policy."); System.exit(0); } else { System.err.println("WARNING: Running with a restricted crypto policy."); System.exit(-1); } } } ++++++ aarch64-jni-update.patch ++++++ --- jdk8/hotspot/make/linux/makefiles/mapfile-vers-product 2014-06-23 13:56:33.000000000 -0400 +++ jdk8/hotspot/make/linux/makefiles/mapfile-vers-product 2014-07-02 05:11:08.566464756 -0400 @@ -163,6 +163,7 @@ JVM_GetStackTraceElement; JVM_GetSystemPackage; JVM_GetSystemPackages; + JVM_GetTemporaryDirectory; JVM_GetThreadStateNames; JVM_GetThreadStateValues; JVM_GetVersionInfo; --- jdk8/hotspot/make/linux/makefiles/mapfile-vers-debug 2014-06-23 13:56:33.000000000 -0400 +++ jdk8/hotspot/make/linux/makefiles/mapfile-vers-debug 2014-07-02 05:10:54.827654319 -0400 @@ -163,6 +163,7 @@ JVM_GetStackTraceElement; JVM_GetSystemPackage; JVM_GetSystemPackages; + JVM_GetTemporaryDirectory; JVM_GetThreadStateNames; JVM_GetThreadStateValues; JVM_GetVersionInfo; --- jdk8/hotspot/src/share/vm/prims/jvm.cpp 2014-06-23 13:56:33.000000000 -0400 +++ jdk8/hotspot/src/share/vm/prims/jvm.cpp 2014-07-02 05:09:22.335662279 -0400 @@ -391,6 +391,21 @@ return properties; JVM_END +/* + * Return the temporary directory that the VM uses for the attach + * and perf data files. + * + * It is important that this directory is well-known and the + * same for all VM instances. It cannot be affected by configuration + * variables such as java.io.tmpdir. + */ +JVM_ENTRY(jstring, JVM_GetTemporaryDirectory(JNIEnv *env)) + JVMWrapper("JVM_GetTemporaryDirectory"); + HandleMark hm(THREAD); + const char* temp_dir = os::get_temp_directory(); + Handle h = java_lang_String::create_from_platform_dependent_str(temp_dir, CHECK_NULL); + return (jstring) JNIHandles::make_local(env, h()); +JVM_END // java.lang.Runtime ///////////////////////////////////////////////////////////////////////// --- jdk8/hotspot/src/share/vm/prims/jvm.h 2014-06-23 13:56:33.000000000 -0400 +++ jdk8/hotspot/src/share/vm/prims/jvm.h 2014-07-02 05:07:41.524389758 -0400 @@ -1490,6 +1490,9 @@ JNIEXPORT jobject JNICALL JVM_InitAgentProperties(JNIEnv *env, jobject agent_props); +JNIEXPORT jstring JNICALL +JVM_GetTemporaryDirectory(JNIEnv *env); + /* Generics reflection support. * * Returns information about the given class's EnclosingMethod ++++++ aarch64-misc.patch ++++++ --- jdk8/common/autoconf/generated-configure.sh 2014-06-18 21:34:07.000000000 +0200 +++ jdk8/common/autoconf/generated-configure.sh 2014-07-09 16:02:13.342878150 +0200 @@ -6818,6 +6818,12 @@ VAR_CPU_BITS=32 VAR_CPU_ENDIAN=little ;; + aarch64) + VAR_CPU=aarch64 + VAR_CPU_ARCH=aarch64 + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=little + ;; powerpc) VAR_CPU=ppc VAR_CPU_ARCH=ppc @@ -6949,6 +6955,12 @@ VAR_CPU_BITS=32 VAR_CPU_ENDIAN=little ;; + aarch64) + VAR_CPU=aarch64 + VAR_CPU_ARCH=aarch64 + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=little + ;; powerpc) VAR_CPU=ppc VAR_CPU_ARCH=ppc @@ -7909,11 +7921,6 @@ JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` - if test "x$JVM_VARIANT_CLIENT" = xtrue; then - if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then - as_fn_error $? "You cannot build a client JVM for a 64-bit machine." "$LINENO" 5 - fi - fi if test "x$JVM_VARIANT_KERNEL" = xtrue; then if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then as_fn_error $? "You cannot build a kernel JVM for a 64-bit machine." "$LINENO" 5 @@ -7953,6 +7960,9 @@ if test "x$VAR_CPU" = xppc64 ; then INCLUDE_SA=false fi + if test "x$OPENJDK_TARGET_CPU" = xaarch64; then + INCLUDE_SA=false + fi if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then @@ -29712,7 +29722,7 @@ # case $COMPILER_NAME in gcc ) - CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \ + CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses \ -pipe \ -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" case $OPENJDK_TARGET_CPU_ARCH in @@ -29957,6 +29967,9 @@ s390) ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31" ;; + aarch64) + ZERO_ARCHFLAG="" + ;; *) ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" esac --- jdk8/common/autoconf/jdk-options.m4 2014-06-18 21:34:07.000000000 +0200 +++ jdk8/common/autoconf/jdk-options.m4 2014-07-09 16:03:01.156813855 +0200 @@ -117,11 +117,6 @@ JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` - if test "x$JVM_VARIANT_CLIENT" = xtrue; then - if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then - AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.]) - fi - fi if test "x$JVM_VARIANT_KERNEL" = xtrue; then if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.]) @@ -161,6 +156,9 @@ if test "x$VAR_CPU" = xppc64 ; then INCLUDE_SA=false fi + if test "x$OPENJDK_TARGET_CPU" = xaarch64; then + INCLUDE_SA=false + fi AC_SUBST(INCLUDE_SA) if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then --- jdk8/common/autoconf/platform.m4 2014-06-18 21:34:07.000000000 +0200 +++ jdk8/common/autoconf/platform.m4 2014-07-09 16:02:13.345878082 +0200 @@ -48,6 +48,12 @@ VAR_CPU_BITS=32 VAR_CPU_ENDIAN=little ;; + aarch64) + VAR_CPU=aarch64 + VAR_CPU_ARCH=aarch64 + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=little + ;; powerpc) VAR_CPU=ppc VAR_CPU_ARCH=ppc --- jdk8/common/autoconf/toolchain.m4 2014-06-18 21:34:07.000000000 +0200 +++ jdk8/common/autoconf/toolchain.m4 2014-07-09 16:02:13.345878082 +0200 @@ -878,7 +878,7 @@ # case $COMPILER_NAME in gcc ) - CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \ + CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses \ -pipe \ -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" case $OPENJDK_TARGET_CPU_ARCH in @@ -1158,6 +1158,9 @@ s390) ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31" ;; + aarch64) + ZERO_ARCHFLAG="" + ;; *) ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" esac --- jdk8/jdk/make/gensrc/GensrcMisc.gmk 2014-06-23 01:01:34.000000000 +0200 +++ jdk8/jdk/make/gensrc/GensrcMisc.gmk 2014-07-09 16:02:13.346878060 +0200 @@ -95,7 +95,7 @@ INCLUDE_FILES := $(GENSRC_SOR_SRC_FILE), \ LANG := C, \ CC := $(BUILD_CC), \ - LDEXE := $(BUILD_LD), \ + LDEXE := $(BUILD_CC), \ OBJECT_DIR := $(GENSRC_SOR_BIN), \ OUTPUT_DIR := $(GENSRC_SOR_BIN), \ PROGRAM := genSocketOptionRegistry)) --- jdk8/jdk/make/lib/SoundLibraries.gmk 2014-06-23 01:01:34.000000000 +0200 +++ jdk8/jdk/make/lib/SoundLibraries.gmk 2014-07-09 16:02:13.346878060 +0200 @@ -139,6 +139,10 @@ ifeq ($(OPENJDK_TARGET_CPU), ppc64) LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64 endif + + ifeq ($(OPENJDK_TARGET_CPU), aarch64) + LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64 + endif endif LIBJSOUND_CFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"' --- jdk8/jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2014-06-23 01:01:34.000000000 +0200 +++ jdk8/jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2014-07-09 16:02:13.346878060 +0200 @@ -43,6 +43,7 @@ #define X_ZERO 6 #define X_ARM 7 #define X_PPC 8 +#define X_AARCH64 9 // ********************************** // Make sure you set X_PLATFORM and X_ARCH defines correctly. --- jdk8/jdk/src/solaris/bin/aarch64/jvm.cfg 1970-01-01 01:00:00.000000000 +0100 +++ jdk8/jdk/src/solaris/bin/aarch64/jvm.cfg 2014-07-09 16:02:13.346878060 +0200 @@ -0,0 +1,39 @@ +# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.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=<jvm_dir>" option, but that too is unsupported +# and may not be available in a future release. +# +# n.b. server must be first so it is used as the default +-server KNOWN +-minimal ERROR +-cacao ERROR +-zero KNOWN +-shark ERROR +-jamvm ERROR ++++++ adlc-parser.patch ++++++ --- jdk8/hotspot/src/share/vm/adlc/formsopt.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/adlc/formsopt.cpp 2014-07-14 11:43:21.900408570 +0200 @@ -347,6 +347,7 @@ _return_value = NULL; _c_return_value = NULL; _interpreter_frame_pointer_reg = NULL; + _cisc_spilling_operand_name = NULL; } FrameForm::~FrameForm() { ++++++ applet-hole.patch ++++++ diff --git jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java --- jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java +++ jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java @@ -68,7 +68,7 @@ /** * The applet (if loaded). */ - Applet applet; + protected Applet applet; /** * Applet will allow initialization. Should be @@ -162,7 +162,8 @@ * Creates a thread to run the applet. This method is called * each time an applet is loaded and reloaded. */ - synchronized void createAppletThread() { + //Overridden by NetxPanel. + protected synchronized void createAppletThread() { // Create a thread group for the applet, and start a new // thread to load the applet. String nm = "applet-" + getCode(); @@ -306,7 +307,7 @@ /** * Get an event from the queue. */ - synchronized AppletEvent getNextEvent() throws InterruptedException { + protected synchronized AppletEvent getNextEvent() throws InterruptedException { while (queue == null || queue.isEmpty()) { wait(); } @@ -692,7 +693,8 @@ * applet event processing so that it can be gracefully interrupted from * things like HotJava. */ - private void runLoader() { + //Overridden by NetxPanel. + protected void runLoader() { if (status != APPLET_DISPOSE) { showAppletStatus("notdisposed"); return; diff --git jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java --- jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java +++ jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java @@ -42,25 +42,25 @@ * * @author Arthur van Hoff */ -class AppletViewerPanel extends AppletPanel { +public class AppletViewerPanel extends AppletPanel { /* Are we debugging? */ - static boolean debug = false; + protected static boolean debug = false; /** * The document url. */ - URL documentURL; + protected URL documentURL; /** * The base url. */ - URL baseURL; + protected URL baseURL; /** * The attributes of the applet. */ - Hashtable atts; + protected Hashtable<String,String> atts; /* * JDK 1.1 serialVersionUID @@ -70,7 +70,7 @@ /** * Construct an applet viewer and start the applet. */ - AppletViewerPanel(URL documentURL, Hashtable atts) { + protected AppletViewerPanel(URL documentURL, Hashtable<String,String> atts) { this.documentURL = documentURL; this.atts = atts; @@ -106,7 +106,7 @@ * Get an applet parameter. */ public String getParameter(String name) { - return (String)atts.get(name.toLowerCase()); + return atts.get(name.toLowerCase()); } /** @@ -202,12 +202,12 @@ return (AppletContext)getParent(); } - static void debug(String s) { + protected static void debug(String s) { if(debug) System.err.println("AppletViewerPanel:::" + s); } - static void debug(String s, Throwable t) { + protected static void debug(String s, Throwable t) { if(debug) { t.printStackTrace(); debug(s); ++++++ compare-pointer-with-literal.patch ++++++ --- jdk8/jdk/src/solaris/native/sun/awt/awt_Font.c 2014-06-23 01:01:34.000000000 +0200 +++ jdk8/jdk/src/solaris/native/sun/awt/awt_Font.c 2014-07-08 23:22:33.235559628 +0200 @@ -502,7 +502,7 @@ jio_snprintf(fdata->flist[i].xlfd, strlen(nativename) + 10, nativename, size * 10); - if (nativename != NULL && nativename != "") + if (nativename && !strcmp(nativename, "")) JNU_ReleaseStringPlatformChars(env, fontDescriptorName, (const char *) nativename); /* ++++++ config.guess ++++++ ++++ 1578 lines (skipped) ++++++ config.sub ++++++ ++++ 1793 lines (skipped) ++++++ disable-doclint-by-default.patch ++++++ Disable doclint by default OpenJDK 8 adds and enables doclint by default. This catches issues in javadoc comments. It is too strict, breaks javadoc compilation and, in general, breaks the build for old code known to build with previous versions of OpenJDK. See: http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html See: https://lists.fedoraproject.org/pipermail/java-devel/2014-February/005150.html Author: Andrew John Hughes <ahug...@redhat.com> Author: Emmanuel Bourg <ebo...@apache.org> --- jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java +++ jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java @@ -811,10 +811,9 @@ doclintOpts.add(opt == null ? DocLint.XMSGS_OPTION : DocLint.XMSGS_CUSTOM_PREFIX + opt); } - if (doclintOpts.isEmpty()) { - doclintOpts.add(DocLint.XMSGS_OPTION); - } else if (doclintOpts.size() == 1 - && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX + "none")) { + if (doclintOpts.isEmpty() || + (doclintOpts.size() == 1 + && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX + "none"))) { return; } --- jdk8/langtools/test/tools/javadoc/doclint/DocLintTest.java +++ jdk8/langtools/test/tools/javadoc/doclint/DocLintTest.java @@ -130,12 +130,12 @@ }; test(Collections.<String>emptyList(), - Main.Result.ERROR, - EnumSet.of(Message.DL_ERR9A, Message.DL_WRN12A)); + Main.Result.OK, + EnumSet.of(Message.JD_WRN10, Message.JD_WRN13)); test(Arrays.asList(rawDiags), - Main.Result.ERROR, - EnumSet.of(Message.DL_ERR9, Message.DL_WRN12)); + Main.Result.OK, + EnumSet.of(Message.JD_WRN10, Message.JD_WRN13)); test(Arrays.asList("-Xdoclint:none"), Main.Result.OK, @@ -158,8 +158,8 @@ EnumSet.of(Message.DL_WRN12)); test(Arrays.asList(rawDiags, "-private"), - Main.Result.ERROR, - EnumSet.of(Message.DL_ERR6, Message.DL_ERR9, Message.DL_WRN12)); + Main.Result.OK, + EnumSet.of(Message.JD_WRN10, Message.JD_WRN13)); test(Arrays.asList(rawDiags, "-Xdoclint:syntax", "-private"), Main.Result.ERROR, ++++++ hotspot-build-j-directive.patch ++++++ # HG changeset patch # User andrew # Date 1398183426 -3600 # Node ID b4ea3a87f707e674a144e805084bda0f72ad4e38 # Parent 00aa9f5a26b9e2c7bdca547201106f76e23a8c01 Don't substitute 'j' for '-j' inside -I directives --- jdk8/hotspot/make/linux/makefiles/adjust-mflags.sh Tue Apr 22 17:15:43 2014 +0100 +++ jdk8/hotspot/make/linux/makefiles/adjust-mflags.sh Tue Apr 22 17:17:06 2014 +0100 @@ -64,7 +64,7 @@ echo "$MFLAGS" \ | sed ' s/^-/ -/ - s/ -\([^ ][^ ]*\)j/ -\1 -j/ + s/ -\([^ I][^ ]*\)j/ -\1 -j/ s/ -j[0-9][0-9]*/ -j/ s/ -j\([^ ]\)/ -j -\1/ s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/ ++++++ implicit-pointer-decl.patch ++++++ --- jdk8/jdk/src/share/instrument/JarFacade.c 2014-07-03 00:01:31.000000000 +0200 +++ jdk8/jdk/src/share/instrument/JarFacade.c 2014-07-15 08:45:35.144295472 +0200 @@ -23,14 +23,7 @@ * questions. */ -#ifdef _WIN32 -/* - * Win* needs this include. However, Linux and Solaris do not. - * Having this include on Solaris SPARC breaks having non US-ASCII - * characters in the value of the Premain-Class attribute. - */ #include <ctype.h> -#endif /* _WIN32 */ #include <string.h> #include <stdlib.h> ++++++ include-all-srcs.patch ++++++ --- jdk8/jdk/make/CreateJars.gmk +++ jdk8/jdk/make/CreateJars.gmk @@ -569,38 +569,12 @@ ########################################################################################## SRC_ZIP_INCLUDES = \ - com/sun/corba \ - com/sun/image/codec/jpeg \ - com/sun/imageio \ - com/sun/java_cup \ - com/sun/javadoc \ - com/sun/java/swing \ - com/sun/jmx \ - com/sun/naming \ - com/sun/org/apache \ - com/sun/security/auth \ - com/sun/security/jgss \ - com/sun/source \ + com \ java \ - javax/accessibility \ - javax/annotation \ - javax/imageio \ - javax/lang \ - javax/management \ - javax/naming \ - javax/print \ - javax/rmi \ - javax/script \ - javax/security \ - javax/sound \ - javax/sql \ - javax/swing \ - javax/tools \ - javax/xml \ - org/ietf \ - org/omg \ - org/w3c/dom \ - org/xml/sax \ + javax \ + jdk \ + org \ + sun \ # SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes @@ -632,7 +606,6 @@ $(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \ SRC := $(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src, \ INCLUDES := $(SRC_ZIP_INCLUDES) launcher, \ - EXCLUDES := javax/swing/beaninfo, \ SUFFIXES := .java .c .h, \ ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \ EXTRA_DEPS := $(LAUNCHER_ZIP_SRC))) ++++++ java-atk-wrapper-security.patch ++++++ --- jdk8/jdk/src/share/lib/security/java.security-linux 2014-07-15 23:08:27.000000000 +0200 +++ jdk8/jdk/src/share/lib/security/java.security-linux 2014-07-18 09:04:45.127566697 +0200 @@ -211,7 +211,9 @@ jdk.internal.,\ jdk.nashorn.internal.,\ jdk.nashorn.tools.,\ - com.sun.activation.registries. + com.sun.activation.registries.,\ + org.GNOME.Accessibility.,\ + org.GNOME.Bonobo. # # List of comma-separated packages that start with or equal this string @@ -258,7 +260,9 @@ jdk.internal.,\ jdk.nashorn.internal.,\ jdk.nashorn.tools.,\ - com.sun.activation.registries. + com.sun.activation.registries.,\ + org.GNOME.Accessibility.,\ + org.GNOME.Bonobo. # # Determines whether this properties file can be appended to ++++++ jconsole.desktop.in ++++++ [Desktop Entry] Name=OpenJDK 8 Monitoring & Management Console GenericName=OpenJDK Monitoring & Management Console Comment=Monitor and manage OpenJDK applications for @VERSION@ Exec=@JAVA_HOME@/bin/jconsole Icon=java Terminal=false Type=Application StartupWMClass=sun-tools-jconsole-JConsole Categories=Development;Profiling; Version=1.0 ++++++ link-with-as-needed.patch ++++++ --- jdk8/jdk/make/CompileLaunchers.gmk +++ jdk8/jdk/make/CompileLaunchers.gmk @@ -427,7 +427,7 @@ # binary (at least on linux) which causes the size to differ between old and new build. ifeq ($(USE_EXTERNAL_LIBZ), true) UNPACKEXE_CFLAGS := -DSYSTEM_ZLIB - UNPACKEXE_ZIPOBJS := -lz + UNPACKEXE_LIBS := -lz else UNPACKEXE_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.8 UNPACKEXE_ZIPOBJS := $(JDK_OUTPUTDIR)/objs/libzip/zcrc32$(OBJ_SUFFIX) \ @@ -488,9 +488,9 @@ LDFLAGS_posix := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \ $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)) \ $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_linux := -lc, \ + LDFLAGS_linux := , \ LDFLAGS_solaris := $(UNPACKEXE_LDFLAGS_solaris) -lc, \ - LDFLAGS_SUFFIX := $(LIBCXX), \ + LDFLAGS_SUFFIX := $(UNPACKEXE_LIBS) $(LIBCXX), \ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR), \ OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR), \ PROGRAM := unpack200, \ --- jdk8/jdk/make/lib/Awt2dLibraries.gmk +++ jdk8/jdk/make/lib/Awt2dLibraries.gmk @@ -762,10 +762,10 @@ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \ $(BUILD_LIBJAVAJPEG_HEADERS), \ MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \ - LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN), \ LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \ - LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ + LDFLAGS_SUFFIX := $(LIBJPEG_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ RC_FLAGS := $(RC_FLAGS) \ -D "JDK_FNAME=javajpeg.dll" \ ++++++ memory-limits.patch ++++++ --- jdk8/hotspot/src/share/vm/runtime/globals.hpp 2014-04-23 22:06:29.000000000 +0100 +++ jdk8/hotspot/src/share/vm/runtime/globals.hpp 2014-05-12 20:42:01.633428300 +0100 @@ -3113,7 +3113,7 @@ product(uintx, InitialHeapSize, 0, \ "Initial heap size (in bytes); zero means use ergonomics") \ \ - product(uintx, MaxHeapSize, ScaleForWordSize(96*M), \ + product(uintx, MaxHeapSize, ScaleForWordSize(512*M), \ "Maximum heap size (in bytes)") \ \ product(uintx, OldSize, ScaleForWordSize(4*M), \ ++++++ multiple-pkcs11-library-init.patch ++++++ # HG changeset patch # User andrew # Date 1352129932 0 # Node ID e9c857dcb964dbfa5eef3a3590244cb4d999cf7a # Parent 1406789608b76d0906881979335d685855f44190 Allow multiple PKCS11 library initialisation to be a non-critical error. diff -r 1406789608b7 -r e9c857dcb964 src/share/classes/sun/security/pkcs11/Config.java --- jdk8/jdk/src/share/classes/sun/security/pkcs11/Config.java Tue Oct 30 13:05:14 2012 +0000 +++ jdk8/jdk/src/share/classes/sun/security/pkcs11/Config.java Mon Nov 05 15:38:52 2012 +0000 @@ -52,6 +52,7 @@ static final int ERR_HALT = 1; static final int ERR_IGNORE_ALL = 2; static final int ERR_IGNORE_LIB = 3; + static final int ERR_IGNORE_MULTI_INIT = 4; // same as allowSingleThreadedModules but controlled via a system property // and applied to all providers. if set to false, no SunPKCS11 instances @@ -980,6 +981,8 @@ handleStartupErrors = ERR_IGNORE_LIB; } else if (val.equals("halt")) { handleStartupErrors = ERR_HALT; + } else if (val.equals("ignoreMultipleInitialisation")) { + handleStartupErrors = ERR_IGNORE_MULTI_INIT; } else { throw excToken("Invalid value for handleStartupErrors:"); } diff -r 1406789608b7 -r e9c857dcb964 src/share/classes/sun/security/pkcs11/SunPKCS11.java --- jdk8/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java Tue Oct 30 13:05:14 2012 +0000 +++ jdk8/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java Mon Nov 05 15:38:52 2012 +0000 @@ -168,26 +168,37 @@ String nssLibraryDirectory = config.getNssLibraryDirectory(); String nssSecmodDirectory = config.getNssSecmodDirectory(); boolean nssOptimizeSpace = config.getNssOptimizeSpace(); + int errorHandling = config.getHandleStartupErrors(); if (secmod.isInitialized()) { if (nssSecmodDirectory != null) { String s = secmod.getConfigDir(); if ((s != null) && (s.equals(nssSecmodDirectory) == false)) { - throw new ProviderException("Secmod directory " - + nssSecmodDirectory - + " invalid, NSS already initialized with " - + s); + String msg = "Secmod directory " + nssSecmodDirectory + + " invalid, NSS already initialized with " + s; + if (errorHandling == Config.ERR_IGNORE_MULTI_INIT || + errorHandling == Config.ERR_IGNORE_ALL) { + throw new UnsupportedOperationException(msg); + } else { + throw new ProviderException(msg); + } } } if (nssLibraryDirectory != null) { String s = secmod.getLibDir(); if ((s != null) && (s.equals(nssLibraryDirectory) == false)) { - throw new ProviderException("NSS library directory " + String msg = "NSS library directory " + nssLibraryDirectory + " invalid, NSS already initialized with " - + s); + + s; + if (errorHandling == Config.ERR_IGNORE_MULTI_INIT || + errorHandling == Config.ERR_IGNORE_ALL) { + throw new UnsupportedOperationException(msg); + } else { + throw new ProviderException(msg); + } } } } else { ++++++ nss.cfg ++++++ name = NSS nssLibraryDirectory = nssDbMode = noDb attributes = compatibility ++++++ policytool.desktop.in ++++++ [Desktop Entry] Name=OpenJDK 8 Policy Tool GenericName=OpenJDK Policy Tool Comment=Manage OpenJDK policy files (@VERSION@) Exec=@JAVA_HOME@/bin/policytool Icon=java Terminal=false Type=Application StartupWMClass=sun-security-tools-PolicyTool Categories=Settings;DesktopSettings;Security; Version=1.0 ++++++ ppc-zero-hotspot.patch ++++++ diff -up jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.ppc64 jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp --- jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.ppc64 2013-02-22 19:02:06.000000000 +0100 +++ jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp 2013-04-18 16:21:24.897403406 +0200 @@ -32,11 +32,15 @@ // define_pd_global(bool, DontYieldALot, false); -define_pd_global(intx, ThreadStackSize, 1536); +define_pd_global(intx, ThreadStackSize, 1664); #ifdef _LP64 -define_pd_global(intx, VMThreadStackSize, 1024); +#if defined (_LITTLE_ENDIAN) && defined (__powerpc64__) +define_pd_global(intx, VMThreadStackSize, 1920); #else -define_pd_global(intx, VMThreadStackSize, 512); +define_pd_global(intx, VMThreadStackSize, 1280); +#endif +#else +define_pd_global(intx, VMThreadStackSize, 640); #endif // _LP64 define_pd_global(intx, CompilerThreadStackSize, 0); define_pd_global(uintx, JVMInvokeMethodSlack, 8192); ++++++ s390-java-opts.patch ++++++ --- jdk8/common/autoconf/boot-jdk.m4 2014-06-18 21:34:07.000000000 +0200 +++ jdk8/common/autoconf/boot-jdk.m4 2014-07-09 22:00:05.272599977 +0200 @@ -315,12 +315,12 @@ fi # Minimum amount of heap memory. - ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs,[$JAVA]) + ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs,[$JAVA]) if test "x$OPENJDK_TARGET_OS" = "xmacosx" || test "x$OPENJDK_TARGET_CPU" = "xppc64" ; then # Why does macosx need more heap? Its the huge JDK batch. ADD_JVM_ARG_IF_OK([-Xmx1600M],boot_jdk_jvmargs,[$JAVA]) else - ADD_JVM_ARG_IF_OK([-Xmx1100M],boot_jdk_jvmargs,[$JAVA]) + ADD_JVM_ARG_IF_OK([-Xmx768M],boot_jdk_jvmargs,[$JAVA]) fi # When is adding -client something that speeds up the JVM? # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA]) ++++++ s390-size_t.patch ++++++ --- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2014-07-11 13:41:53.568013676 +0200 @@ -2686,7 +2686,7 @@ if (ResizeOldPLAB && CMSOldPLABResizeQuicker) { size_t multiple = _num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks); n_blks += CMSOldPLABReactivityFactor*multiple*n_blks; - n_blks = MIN2(n_blks, CMSOldPLABMax); + n_blks = MIN2(n_blks, (size_t)CMSOldPLABMax); } assert(n_blks > 0, "Error"); _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl); --- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-07-11 13:58:22.740341755 +0200 @@ -950,7 +950,7 @@ if (free_percentage < desired_free_percentage) { size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); assert(desired_capacity >= capacity(), "invalid expansion size"); - size_t expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes); + size_t expand_bytes = MAX2(desired_capacity - capacity(), (size_t)MinHeapDeltaBytes); if (PrintGCDetails && Verbose) { size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); gclog_or_tty->print_cr("\nFrom compute_new_size: "); @@ -6559,7 +6559,7 @@ HeapWord* curAddr = _markBitMap.startWord(); while (curAddr < _markBitMap.endWord()) { size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr); - MemRegion chunk(curAddr, MIN2(CMSBitMapYieldQuantum, remaining)); + MemRegion chunk(curAddr, MIN2((size_t)CMSBitMapYieldQuantum, remaining)); _markBitMap.clear_large_range(chunk); if (ConcurrentMarkSweepThread::should_yield() && !foregroundGCIsActive() && @@ -6858,7 +6858,7 @@ return; } // Double capacity if possible - size_t new_capacity = MIN2(_capacity*2, MarkStackSizeMax); + size_t new_capacity = MIN2(_capacity*2, (size_t)MarkStackSizeMax); // Do not give up existing stack until we have managed to // get the double capacity that we desired. ReservedSpace rs(ReservedSpace::allocation_align_size_up( --- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2014-07-11 13:57:11.817966591 +0200 @@ -3767,7 +3767,7 @@ // of things to do) or totally (at the very end). size_t target_size; if (partially) { - target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize); + target_size = MIN2((size_t)(_task_queue->max_elems()/3), (size_t)GCDrainStackTargetSize); } else { target_size = 0; } --- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-07-11 13:41:53.582013356 +0200 @@ -1730,7 +1730,7 @@ verify_region_sets_optional(); - size_t expand_bytes = MAX2(word_size * HeapWordSize, MinHeapDeltaBytes); + size_t expand_bytes = MAX2(word_size * HeapWordSize, (size_t)MinHeapDeltaBytes); ergo_verbose1(ErgoHeapSizing, "attempt heap expansion", ergo_format_reason("allocation request failed") --- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2014-07-11 15:59:18.899087161 +0200 @@ -38,7 +38,7 @@ _cancel(false), _empty(true), _dropped(0) { - _nqueues = MAX2(ParallelGCThreads, (size_t)1); + _nqueues = MAX2((size_t)ParallelGCThreads, (size_t)1); _queues = NEW_C_HEAP_ARRAY(G1StringDedupWorkerQueue, _nqueues, mtGC); for (size_t i = 0; i < _nqueues; i++) { new (_queues + i) G1StringDedupWorkerQueue(G1StringDedupWorkerQueue::default_segment_size(), _max_cache_size, _max_size); --- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2014-07-11 16:09:06.970540320 +0200 @@ -110,7 +110,7 @@ }; G1StringDedupEntryCache::G1StringDedupEntryCache() { - _nlists = MAX2(ParallelGCThreads, (size_t)1); + _nlists = MAX2((size_t)ParallelGCThreads, (size_t)1); _lists = PaddedArray<G1StringDedupEntryFreeList, mtGC>::create_unfreeable((uint)_nlists); } --- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2014-07-11 13:41:53.582013356 +0200 @@ -160,7 +160,7 @@ if (FLAG_IS_DEFAULT(G1HeapRegionSize)) { size_t average_heap_size = (initial_heap_size + max_heap_size) / 2; region_size = MAX2(average_heap_size / TARGET_REGION_NUMBER, - (uintx) MIN_REGION_SIZE); + (size_t) MIN_REGION_SIZE); } int region_size_log = log2_long((jlong) region_size); --- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2014-07-11 17:39:05.464946601 +0200 @@ -71,7 +71,7 @@ if (_virtual_space != NULL && _virtual_space->expand_by(_reserved_byte_size)) { _region_start = covered_region.start(); _region_size = covered_region.word_size(); - idx_t* map = (idx_t*)_virtual_space->reserved_low_addr(); + BitMap::bm_word_t* map = (BitMap::bm_word_t*)_virtual_space->reserved_low_addr(); _beg_bits.set_map(map); _beg_bits.set_size(bits / 2); _end_bits.set_map(map + words / 2); --- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-07-11 13:41:53.584013310 +0200 @@ -910,8 +910,8 @@ void PSParallelCompact::initialize_dead_wood_limiter() { const size_t max = 100; - _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0; - _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0; + _dwl_mean = double(MIN2((size_t)ParallelOldDeadWoodLimiterMean, max)) / 100.0; + _dwl_std_dev = double(MIN2((size_t)ParallelOldDeadWoodLimiterStdDev, max)) / 100.0; _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev); DEBUG_ONLY(_dwl_initialized = true;) _dwl_adjustment = normal_distribution(1.0); --- jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-07-11 13:41:53.585013287 +0200 @@ -194,7 +194,7 @@ const size_t num_overflow_elems = of_stack->size(); const size_t space_available = queue->max_elems() - queue->size(); const size_t num_take_elems = MIN3(space_available / 4, - ParGCDesiredObjsFromOverflowList, + (size_t)ParGCDesiredObjsFromOverflowList, num_overflow_elems); // Transfer the most recent num_take_elems from the overflow // stack to our work queue. --- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-07-11 13:38:14.060047977 +0200 @@ -389,7 +389,7 @@ uintx calculated_size = NewSize + OldSize; double shrink_factor = (double) MaxHeapSize / calculated_size; uintx smaller_new_size = align_size_down((uintx)(NewSize * shrink_factor), _gen_alignment); - FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(), smaller_new_size)); + FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(), (size_t)smaller_new_size)); _initial_gen0_size = NewSize; // OldSize is already aligned because above we aligned MaxHeapSize to @@ -437,7 +437,7 @@ // yield a size that is too small) and bound it by MaxNewSize above. // Ergonomics plays here by previously calculating the desired // NewSize and MaxNewSize. - max_new_size = MIN2(MAX2(max_new_size, NewSize), MaxNewSize); + max_new_size = MIN2(MAX2(max_new_size, (size_t)NewSize), (size_t)MaxNewSize); } assert(max_new_size > 0, "All paths should set max_new_size"); @@ -459,23 +459,23 @@ // lower limit. _min_gen0_size = NewSize; desired_new_size = NewSize; - max_new_size = MAX2(max_new_size, NewSize); + max_new_size = MAX2(max_new_size, (size_t)NewSize); } else if (FLAG_IS_ERGO(NewSize)) { // If NewSize is set ergonomically, we should use it as a lower // limit, but use NewRatio to calculate the initial size. _min_gen0_size = NewSize; desired_new_size = - MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize); - max_new_size = MAX2(max_new_size, NewSize); + MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize); + max_new_size = MAX2(max_new_size, (size_t)NewSize); } else { // For the case where NewSize is the default, use NewRatio // to size the minimum and initial generation sizes. // Use the default NewSize as the floor for these values. If // NewRatio is overly large, the resulting sizes can be too // small. - _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size), NewSize); + _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size), (size_t)NewSize); desired_new_size = - MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize); + MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize); } assert(_min_gen0_size > 0, "Sanity check"); @@ -577,7 +577,7 @@ } else { // It's been explicitly set on the command line. Use the // OldSize and then determine the consequences. - _min_gen1_size = MIN2(OldSize, _min_heap_byte_size - _min_gen0_size); + _min_gen1_size = MIN2((size_t)OldSize, _min_heap_byte_size - _min_gen0_size); _initial_gen1_size = OldSize; // If the user has explicitly set an OldSize that is inconsistent --- jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2014-07-11 16:19:00.043879052 +0200 @@ -1431,7 +1431,7 @@ void MetaspaceGC::post_initialize() { // Reset the high-water mark once the VM initialization is done. - _capacity_until_GC = MAX2(MetaspaceAux::committed_bytes(), MetaspaceSize); + _capacity_until_GC = MAX2(MetaspaceAux::committed_bytes(), (size_t)MetaspaceSize); } bool MetaspaceGC::can_expand(size_t word_size, bool is_class) { @@ -1491,7 +1491,7 @@ (size_t)MIN2(min_tmp, double(max_uintx)); // Don't shrink less than the initial generation size minimum_desired_capacity = MAX2(minimum_desired_capacity, - MetaspaceSize); + (size_t)MetaspaceSize); if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr("\nMetaspaceGC::compute_new_size: "); @@ -1546,7 +1546,7 @@ const double max_tmp = used_after_gc / minimum_used_percentage; size_t maximum_desired_capacity = (size_t)MIN2(max_tmp, double(max_uintx)); maximum_desired_capacity = MAX2(maximum_desired_capacity, - MetaspaceSize); + (size_t)MetaspaceSize); if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr(" " " maximum_free_percentage: %6.2f" @@ -3197,7 +3197,7 @@ // on the medium chunk list. The next chunk will be small and progress // from there. This size calculated by -version. _first_class_chunk_word_size = MIN2((size_t)MediumChunk*6, - (CompressedClassSpaceSize/BytesPerWord)*2); + (size_t)(CompressedClassSpaceSize/BytesPerWord)*2); _first_class_chunk_word_size = align_word_size_up(_first_class_chunk_word_size); // Arbitrarily set the initial virtual space to a multiple // of the boot class loader size. --- jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2014-07-11 17:50:56.051695703 +0200 @@ -238,7 +238,7 @@ size_t init_sz; if (TLABSize > 0) { - init_sz = MIN2(TLABSize / HeapWordSize, max_size()); + init_sz = MIN2((size_t)(TLABSize / HeapWordSize), max_size()); } else if (global_stats() == NULL) { // Startup issue - main thread initialized before heap initialized. init_sz = min_size(); --- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2014-07-11 13:41:56.743940848 +0200 @@ -48,7 +48,7 @@ const size_t beg_index = size_t(index); assert(beg_index < len || len == 0, "index too large"); - const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride); + const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride); const size_t end_index = beg_index + stride; T* const base = (T*)a->base(); T* const beg = base + beg_index; @@ -82,7 +82,7 @@ const size_t beg_index = size_t(index); assert(beg_index < len || len == 0, "index too large"); - const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride); + const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride); const size_t end_index = beg_index + stride; T* const base = (T*)a->base(); T* const beg = base + beg_index; --- jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2014-07-03 21:56:12.000000000 +0200 +++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2014-07-11 11:47:11.845740259 +0200 @@ -1244,7 +1244,7 @@ // NewSize was set on the command line and it is larger than // preferred_max_new_size. if (!FLAG_IS_DEFAULT(NewSize)) { // NewSize explicitly set at command-line - FLAG_SET_ERGO(uintx, MaxNewSize, MAX2(NewSize, preferred_max_new_size)); + FLAG_SET_ERGO(uintx, MaxNewSize, MAX2((size_t)NewSize, preferred_max_new_size)); } else { FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size); } @@ -1269,8 +1269,8 @@ // Unless explicitly requested otherwise, make young gen // at least min_new, and at most preferred_max_new_size. if (FLAG_IS_DEFAULT(NewSize)) { - FLAG_SET_ERGO(uintx, NewSize, MAX2(NewSize, min_new)); - FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, NewSize)); + FLAG_SET_ERGO(uintx, NewSize, MAX2((size_t)NewSize, min_new)); + FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t)NewSize)); if (PrintGCDetails && Verbose) { // Too early to use gclog_or_tty tty->print_cr("CMS ergo set NewSize: " SIZE_FORMAT, NewSize); @@ -1280,7 +1280,7 @@ // so it's NewRatio x of NewSize. if (FLAG_IS_DEFAULT(OldSize)) { if (max_heap > NewSize) { - FLAG_SET_ERGO(uintx, OldSize, MIN2(NewRatio*NewSize, max_heap - NewSize)); + FLAG_SET_ERGO(uintx, OldSize, MIN2((unsigned long)(NewRatio*NewSize), max_heap - NewSize)); if (PrintGCDetails && Verbose) { // Too early to use gclog_or_tty tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize); @@ -1401,7 +1401,7 @@ return true; } -uintx Arguments::max_heap_for_compressed_oops() { +size_t Arguments::max_heap_for_compressed_oops() { // Avoid sign flip. assert(OopEncodingHeapMax > (uint64_t)os::vm_page_size(), "Unusual page size"); // We need to fit both the NULL page and the heap into the memory budget, while ++++++ system-giflib5.patch ++++++ --- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c +++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c @@ -316,9 +316,18 @@ int SplashDecodeGifStream(Splash * splash, SplashStream * stream) { +#ifdef GIFLIB_MAJOR >= 5 + int error = 0; + GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc, &error); + + if (error) + return 0; +#else GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc); if (!gif) return 0; +#endif + return SplashDecodeGif(splash, gif); } ++++++ system-lcms.patch ++++++ # DP: taken from http://icedtea.classpath.org/wiki/IcedTea_Patches_for_OpenJDK_8 Index: b/common/autoconf/libraries.m4 =================================================================== --- jdk8/common/autoconf/libraries.m4 +++ jdk8/common/autoconf/libraries.m4 @@ -679,6 +679,46 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS], ############################################################################### # + # Check for the lcms2 library + # + + AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms], + [use lcms2 from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])]) + + AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile, + [ LCMS_FOUND=yes ], + [ LCMS_FOUND=no ]) + + AC_MSG_CHECKING([for which lcms to use]) + + DEFAULT_LCMS=bundled + + # + # If user didn't specify, use DEFAULT_LCMS + # + if test "x${with_lcms}" = "x"; then + with_lcms=${DEFAULT_LCMS} + fi + + if test "x${with_lcms}" = "xbundled"; then + USE_EXTERNAL_LCMS=false + AC_MSG_RESULT([bundled]) + elif test "x${with_lcms}" = "xsystem"; then + if test "x${LCMS_FOUND}" = "xyes"; then + USE_EXTERNAL_LCMS=true + AC_MSG_RESULT([system]) + else + AC_MSG_RESULT([system not found]) + AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!]) + fi + else + AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or 'bundled']) + fi + + AC_SUBST(USE_EXTERNAL_LCMS) + + ############################################################################### + # # Check for the png library # Index: b/jdk/make/lib/Awt2dLibraries.gmk =================================================================== --- jdk8/jdk/make/lib/Awt2dLibraries.gmk +++ jdk8/jdk/make/lib/Awt2dLibraries.gmk @@ -670,8 +670,8 @@ endif ########################################################################################## # TODO: Update awt lib path when awt is converted -$(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \ - LIBRARY := lcms, \ +$(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS, \ + LIBRARY := javalcms, \ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \ LANG := C, \ @@ -689,19 +689,19 @@ $(eval $(call SetupNativeCompilation,BUI LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \ LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \ LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \ - LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \ + LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm -llcms2, \ LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=lcms.dll" \ - -D "JDK_INTERNAL_NAME=lcms" \ + -D "JDK_FNAME=javalcms.dll" \ + -D "JDK_INTERNAL_NAME=javalcms" \ -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavalcms, \ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) -BUILD_LIBRARIES += $(BUILD_LIBLCMS) +BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS) -$(BUILD_LIBLCMS): $(BUILD_LIBAWT) +$(BUILD_LIBJAVALCMS): $(BUILD_LIBAWT) ########################################################################################## Index: b/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java =================================================================== --- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java +++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java @@ -207,7 +207,7 @@ public class LCMS implements PCMM { * disposer frameworks */ System.loadLibrary("awt"); - System.loadLibrary("lcms"); + System.loadLibrary("javalcms"); return null; } }); ++++++ system-libjpeg.patch ++++++ --- jdk8/common/autoconf/generated-configure.sh 2014-06-18 21:34:07.000000000 +0200 +++ jdk8/common/autoconf/generated-configure.sh 2014-07-08 18:47:15.372657941 +0200 @@ -1058,6 +1058,7 @@ with_alsa with_alsa_include with_alsa_lib +with_libjpeg with_giflib with_zlib with_stdc__lib @@ -1828,6 +1829,8 @@ headers under PATH/include) --with-alsa-include specify directory for the alsa include files --with-alsa-lib specify directory for the alsa library + --with-libjpeg use libjpeg from build system or OpenJDK source + (system, bundled) [bundled] --with-giflib use giflib from build system or OpenJDK source (system, bundled) [bundled] --with-zlib use zlib from build system or OpenJDK source @@ -3868,7 +3871,7 @@ #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1397150809 +DATE_WHEN_GENERATED=1404288415 ############################################################################### # @@ -34911,10 +34919,43 @@ # Check for the jpeg library # - USE_EXTERNAL_LIBJPEG=true - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5 -$as_echo_n "checking for main in -ljpeg... " >&6; } -if ${ac_cv_lib_jpeg_main+:} false; then : + +# Check whether --with-libjpeg was given. +if test "${with_libjpeg+set}" = set; then : + withval=$with_libjpeg; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for which libjpeg to use" >&5 +$as_echo_n "checking for which libjpeg to use... " >&6; } + + # default is bundled + DEFAULT_LIBJPEG=bundled + + # + # if user didn't specify, use DEFAULT_LIBJPEG + # + if test "x${with_libjpeg}" = "x"; then + with_libjpeg=${DEFAULT_LIBJPEG} + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libjpeg}" >&5 +$as_echo "${with_libjpeg}" >&6; } + + if test "x${with_libjpeg}" = "xbundled"; then + USE_EXTERNAL_LIBJPEG=false + elif test "x${with_libjpeg}" = "xsystem"; then + ac_fn_cxx_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" +if test "x$ac_cv_header_jpeglib_h" = xyes; then : + +else + as_fn_error $? "--with-libjpeg=system specified, but jpeglib.h not found!" "$LINENO" 5 +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_CreateDecompress in -ljpeg" >&5 +$as_echo_n "checking for jpeg_CreateDecompress in -ljpeg... " >&6; } +if ${ac_cv_lib_jpeg_jpeg_CreateDecompress+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -34922,27 +34963,33 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char jpeg_CreateDecompress (); int main () { -return main (); +return jpeg_CreateDecompress (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : - ac_cv_lib_jpeg_main=yes + ac_cv_lib_jpeg_jpeg_CreateDecompress=yes else - ac_cv_lib_jpeg_main=no + ac_cv_lib_jpeg_jpeg_CreateDecompress=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5 -$as_echo "$ac_cv_lib_jpeg_main" >&6; } -if test "x$ac_cv_lib_jpeg_main" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_CreateDecompress" >&5 +$as_echo "$ac_cv_lib_jpeg_jpeg_CreateDecompress" >&6; } +if test "x$ac_cv_lib_jpeg_jpeg_CreateDecompress" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBJPEG 1 _ACEOF @@ -34950,10 +34997,13 @@ LIBS="-ljpeg $LIBS" else - USE_EXTERNAL_LIBJPEG=false - { $as_echo "$as_me:${as_lineno-$LINENO}: Will use jpeg decoder bundled with the OpenJDK source" >&5 -$as_echo "$as_me: Will use jpeg decoder bundled with the OpenJDK source" >&6;} + as_fn_error $? "--with-libjpeg=system specified, but no libjpeg found" "$LINENO" 5 +fi + + USE_EXTERNAL_LIBJPEG=true + else + as_fn_error $? "Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'" "$LINENO" 5 fi --- jdk8/common/autoconf/libraries.m4 2014-06-18 21:34:07.000000000 +0200 +++ jdk8/common/autoconf/libraries.m4 2014-07-08 18:47:15.372657941 +0200 @@ -608,11 +608,36 @@ # Check for the jpeg library # + AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg], + [use libjpeg from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])]) + + AC_MSG_CHECKING([for which libjpeg to use]) + + # default is bundled + DEFAULT_LIBJPEG=bundled + + # + # if user didn't specify, use DEFAULT_LIBJPEG + # + if test "x${with_libjpeg}" = "x"; then + with_libjpeg=${DEFAULT_LIBJPEG} + fi + + AC_MSG_RESULT(${with_libjpeg}) + + if test "x${with_libjpeg}" = "xbundled"; then + USE_EXTERNAL_LIBJPEG=false + elif test "x${with_libjpeg}" = "xsystem"; then + AC_CHECK_HEADER(jpeglib.h, [], + [ AC_MSG_ERROR([--with-libjpeg=system specified, but jpeglib.h not found!])]) + AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [], + [ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])]) + USE_EXTERNAL_LIBJPEG=true - AC_CHECK_LIB(jpeg, main, [], - [ USE_EXTERNAL_LIBJPEG=false - AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source]) - ]) + else + AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled']) + fi + AC_SUBST(USE_EXTERNAL_LIBJPEG) ############################################################################### --- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-06-23 01:01:34.000000000 +0200 +++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-07-08 18:47:15.373657942 +0200 @@ -705,18 +705,20 @@ ########################################################################################## +BUILD_LIBJAVAJPEG_DIR := $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg + ifdef OPENJDK - BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers + BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers else - BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed - BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg - BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC) + BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed + BUILD_LIBJAVAJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg + BUILD_LIBJAVAJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJAVAJPEG_CLOSED_SRC) endif -BUILD_LIBJPEG_REORDER := +BUILD_LIBJAVAJPEG_REORDER := ifeq ($(OPENJDK_TARGET_OS), solaris) ifneq ($(OPENJDK_TARGET_CPU), x86_64) - BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) + BUILD_LIBJAVAJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) endif endif @@ -731,37 +733,50 @@ # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \ # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) ) # ifeq ($(CC_43_OR_NEWER), 1) -# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered +# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered # endif #endif -$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \ - LIBRARY := jpeg, \ +ifeq ($(USE_EXTERNAL_LIBJPEG), true) + LIBJPEG_LIBS := -ljpeg + BUILD_LIBJAVAJPEG_INCLUDE_FILES := \ + imageIOJPEG.c \ + jpegdecoder.c + BUILD_LIBJAVAJPEG_HEADERS := +else + LIBJPEG_LIBS := + BUILD_LIBJAVAJPEG_INCLUDE_FILES := + BUILD_LIBJAVAJPEG_HEADERS := -I$(BUILD_LIBJAVAJPEG_DIR) +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \ + LIBRARY := javajpeg, \ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \ - $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ + SRC := $(BUILD_LIBJAVAJPEG_CLOSED_SRC) \ + $(BUILD_LIBJAVAJPEG_DIR), \ + INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \ LANG := C, \ OPTIMIZATION := HIGHEST, \ CFLAGS := $(CFLAGS_JDKLIB) \ - $(BUILD_LIBJPEG_CLOSED_INCLUDES) \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ - MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \ + $(BUILD_LIBJAVAJPEG_HEADERS), \ + MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \ + LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \ $(call SET_SHARED_LIBRARY_ORIGIN), \ LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \ LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=jpeg.dll" \ - -D "JDK_INTERNAL_NAME=jpeg" \ + -D "JDK_FNAME=javajpeg.dll" \ + -D "JDK_INTERNAL_NAME=javajpeg" \ -D "JDK_FTYPE=0x2L", \ - REORDER := $(BUILD_LIBJPEG_REORDER), \ + REORDER := $(BUILD_LIBJAVAJPEG_REORDER), \ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) -$(BUILD_LIBJPEG): $(BUILD_LIBJAVA) +$(BUILD_LIBJAVAJPEG): $(BUILD_LIBJAVA) -BUILD_LIBRARIES += $(BUILD_LIBJPEG) +BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG) ########################################################################################## @@ -1207,6 +1222,13 @@ GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib endif + ifeq ($(USE_EXTERNAL_LIBJPEG), true) + LIBJPEG_LDFLAGS := -ljpeg + else + LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg + LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg + endif + ifneq ($(OPENJDK_TARGET_OS), macosx) LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen else @@ -1269,11 +1291,13 @@ EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \ LANG := C, \ OPTIMIZATION := LOW, \ - CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \ + CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \ + $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \ LDFLAGS := $(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \ + LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \ + $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \ LDFLAGS_SUFFIX_solaris := -lc, \ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ RC_FLAGS := $(RC_FLAGS) \ --- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java 2014-06-23 01:01:34.000000000 +0200 +++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java 2014-07-08 18:47:15.373657942 +0200 @@ -89,7 +89,7 @@ java.security.AccessController.doPrivileged( new java.security.PrivilegedAction<Void>() { public Void run() { - System.loadLibrary("jpeg"); + System.loadLibrary("javajpeg"); return null; } }); --- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java 2014-06-23 01:01:34.000000000 +0200 +++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java 2014-07-08 18:47:15.374657940 +0200 @@ -179,7 +179,7 @@ java.security.AccessController.doPrivileged( new java.security.PrivilegedAction<Void>() { public Void run() { - System.loadLibrary("jpeg"); + System.loadLibrary("javajpeg"); return null; } }); --- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java 2014-06-23 01:01:34.000000000 +0200 +++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java 2014-07-08 18:47:15.374657940 +0200 @@ -56,7 +56,7 @@ java.security.AccessController.doPrivileged( new java.security.PrivilegedAction<Void>() { public Void run() { - System.loadLibrary("jpeg"); + System.loadLibrary("javajpeg"); return null; } }); --- jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2014-06-23 01:01:34.000000000 +0200 +++ jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2014-07-08 18:47:15.374657940 +0200 @@ -51,7 +51,7 @@ /* headers from the JPEG library */ #include <jpeglib.h> -#include "jerror.h" +#include <jerror.h> #undef MAX #define MAX(a,b) ((a) > (b) ? (a) : (b)) --- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c 2014-06-23 01:01:34.000000000 +0200 +++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c 2014-07-08 19:15:42.773049037 +0200 @@ -25,9 +25,9 @@ #include "splashscreen_impl.h" -#include "jinclude.h" -#include "jpeglib.h" -#include "jerror.h" +#include <jpeglib.h> +#include <jerror.h> +#include <jmorecfg.h> #include <setjmp.h> @@ -107,11 +107,11 @@ if (cinfo->src == NULL) { /* first time for this JPEG object? */ cinfo->src = (struct jpeg_source_mgr *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, - JPOOL_PERMANENT, SIZEOF(stream_source_mgr)); + JPOOL_PERMANENT, sizeof(stream_source_mgr)); src = (stream_src_ptr) cinfo->src; src->buffer = (JOCTET *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, - JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET)); + JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET)); } src = (stream_src_ptr) cinfo->src; ++++++ system-libpng.patch ++++++ --- jdk8/common/autoconf/libraries.m4 +++ jdk8/common/autoconf/libraries.m4 @@ -679,6 +679,47 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS], ############################################################################### # + # Check for the png library + # + + AC_ARG_WITH(libpng, [AS_HELP_STRING([--with-libpng], + [use libpng from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])]) + + AC_CHECK_LIB(png, png_sig_cmp, + [ LIBPNG_FOUND=yes ], + [ LIBPNG_FOUND=no ]) + + AC_MSG_CHECKING([for which libpng to use]) + + # default is bundled + DEFAULT_LIBPNG=bundled + + # + # if user didn't specify, use DEFAULT_LIBPNG + # + if test "x${with_libpng}" = "x"; then + with_libpng=${DEFAULT_libpng} + fi + + + if test "x${with_libpng}" = "xbundled"; then + USE_EXTERNAL_LIBPNG=false + AC_MSG_RESULT([bundled]) + elif test "x${with_libpng}" = "xsystem"; then + if test "x${LIBPNG_FOUND}" = "xyes"; then + USE_EXTERNAL_LIBPNG=true + AC_MSG_RESULT([system]) + else + AC_MSG_RESULT([system not found]) + AC_MSG_ERROR([--with-libpng=system specified, but no libpng found!]) + fi + else + AC_MSG_ERROR([Invalid value of --with-libpng: ${with_libpng}, use 'system' or 'bundled']) + fi + AC_SUBST(USE_EXTERNAL_LIBPNG) + + ############################################################################### + # # Check for the zlib library # --- jdk8/common/autoconf/spec.gmk.in +++ jdk8/common/autoconf/spec.gmk.in @@ -555,6 +555,7 @@ endif ENABLE_JFR=@ENABLE_JFR@ ENABLE_INTREE_EC=@ENABLE_INTREE_EC@ USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@ +USE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@ USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@ USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@ LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ --- jdk8/jdk/make/lib/Awt2dLibraries.gmk +++ jdk8/jdk/make/lib/Awt2dLibraries.gmk @@ -1213,7 +1213,6 @@ endif ifndef BUILD_HEADLESS_ONLY LIBSPLASHSCREEN_DIRS := \ $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \ - $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \ $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen ifeq ($(USE_EXTERNAL_LIBGIF), true) @@ -1230,6 +1229,13 @@ ifndef BUILD_HEADLESS_ONLY LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg endif + ifeq ($(USE_EXTERNAL_LIBPNG), true) + LIBPNG_LDFLAGS := -lpng + else + LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/libpng + LIBPNG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/libpng + endif + ifneq ($(OPENJDK_TARGET_OS), macosx) LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen else @@ -1293,12 +1299,12 @@ ifndef BUILD_HEADLESS_ONLY LANG := C, \ OPTIMIZATION := LOW, \ CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \ - $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \ + $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(LIBPNG_CFLAGS), \ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \ LDFLAGS := $(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN), \ LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \ - $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \ + $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS) $(LIBPNG_LDFLAGS), \ LDFLAGS_SUFFIX_solaris := -lc, \ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ RC_FLAGS := $(RC_FLAGS) \ --- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c +++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c @@ -25,8 +25,7 @@ #include "splashscreen_impl.h" -#include "../libpng/png.h" - +#include <png.h> #include <setjmp.h> #define SIG_BYTES 8 -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org