Hello community,

here is the log from the commit of package java-1_8_0-openjdk.3996 for 
openSUSE:13.2:Update checked in at 2015-09-15 11:18:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/java-1_8_0-openjdk.3996 (Old)
 and      /work/SRC/openSUSE:13.2:Update/.java-1_8_0-openjdk.3996.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "java-1_8_0-openjdk.3996"

Changes:
--------
New Changes file:

--- /dev/null   2015-08-24 19:43:32.284261900 +0200
+++ 
/work/SRC/openSUSE:13.2:Update/.java-1_8_0-openjdk.3996.new/java-1_8_0-openjdk.changes
      2015-09-15 11:18:24.000000000 +0200
@@ -0,0 +1,396 @@
+-------------------------------------------------------------------
+Wed Aug 19 08:12:09 UTC 2015 - [email protected]
+
+- Upgrade to upstream tag jdk8u60-b27
+  * Release of JDK 8u60
+- Removed patches:
+  * hotspot-support-kernel-4.patch
+  * cplusplus-interpreter.patch
+  * signed-overflow.patch
+    - Integrated upstream
+  * system-giflib5.patch
+    - Fixed differently upstream
+  * applet-hole.patch
+    - Not needed any more with recent versions of icedtea-web
+Modified patches
+  * aarch64-misc.patch
+    - Rediff to correspond to the new context
+    - Added bits from aarch64-port/jdk8/jdk
+
+-------------------------------------------------------------------
+Tue Aug 18 13:04:22 UTC 2015 - [email protected]
+
+- Add constraints file
+
+-------------------------------------------------------------------
+Wed Jul 22 08:21:13 UTC 2015 - [email protected]
+
+- Upgrade to upstream tag jdk8u51-b16
+  * Security fix release of July 15, 2015 (bsc#938248, bsc#937828)
+- Security issues fixed:
+  * CVE-2015-2590: Vulnerability in the Java SE, Java SE Embedded
+    component of Oracle Java SE (subcomponent: Libraries).
+  * CVE-2015-2597: Vulnerability in the Java SE component of Oracle
+    Java SE (subcomponent: Install).
+  * CVE-2015-2601: Vulnerability in the Java SE, JRockit, Java SE
+    Embedded component of Oracle Java SE (subcomponent: JCE).
+  * CVE-2015-2613: Vulnerability in the Java SE, Java SE Embedded
+    component of Oracle Java SE (subcomponent: JCE).
+  * CVE-2015-2619: Vulnerability in the Java SE, JavaFX, Java SE
+    Embedded component of Oracle Java SE (subcomponent: 2D).
+  * CVE-2015-2621: Vulnerability in the Java SE, Java SE Embedded
+    component of Oracle Java SE (subcomponent: JMX).
+  * CVE-2015-2625: Vulnerability in the Java SE, JRockit, Java SE
+    Embedded component of Oracle Java SE (subcomponent: JSSE).
+  * CVE-2015-2627: Vulnerability in the Java SE component of Oracle
+    Java SE (subcomponent: Install).
+  * CVE-2015-2628: Vulnerability in the Java SE, Java SE Embedded
+    component of Oracle Java SE (subcomponent: CORBA).
+  * CVE-2015-2632; Vulnerability in the Java SE component of Oracle
+    Java SE (subcomponent: 2D).
+  * CVE-2015-2637: Vulnerability in the Java SE, JavaFX, Java SE
+    Embedded component of Oracle Java SE (subcomponent: 2D).
+  * CVE-2015-2638: Vulnerability in the Java SE, JavaFX, Java SE
+    Embedded component of Oracle Java SE (subcomponent: 2D).
+  * CVE-2015-2659: Vulnerability in the Java SE, Java SE Embedded
+    component of Oracle Java SE (subcomponent: Security).
+  * CVE-2015-2664: Vulnerability in the Java SE component of Oracle
+    Java SE (subcomponent: Deployment).
+  * CVE-2015-2808: Vulnerability in the Java SE, JRockit, Java SE
+    Embedded component of Oracle Java SE (subcomponent: JSSE).
+  * CVE-2015-4000: Vulnerability in the Java SE, JRockit, Java SE
+    Embedded component of Oracle Java SE (subcomponent: JSSE).
+  * CVE-2015-4729: Vulnerability in the Java SE component of Oracle
+    Java SE (subcomponent: Deployment).
+  * CVE-2015-4731: Vulnerability in the Java SE, Java SE Embedded
+    component of Oracle Java SE (subcomponent: JMX).
+  * CVE-2015-4732: Vulnerability in the Java SE, Java SE Embedded
+    component of Oracle Java SE (subcomponent: Libraries).
+  * CVE-2015-4733: Vulnerability in the Java SE, Java SE Embedded
+    component of Oracle Java SE (subcomponent: RMI).
+  * CVE-2015-4736: Vulnerability in the Java SE component of Oracle
+    Java SE (subcomponent: Deployment).
+  * CVE-2015-4748: Vulnerability in the Java SE, JRockit, Java SE
+    Embedded component of Oracle Java SE (subcomponent: Security).
+  * CVE-2015-4749: Vulnerability in the Java SE, JRockit, Java SE
+    Embedded component of Oracle Java SE (subcomponent: JNDI).
+  * CVE-2015-4760: Vulnerability in the Java SE component of Oracle
+    Java SE (subcomponent: 2D).
+
+-------------------------------------------------------------------
+Thu Jun 18 13:38:54 UTC 2015 - [email protected]
+
+- Use priority matching to ibm-java, always 5 bigger than it
+
+-------------------------------------------------------------------
+Wed Jun 10 08:10:23 UTC 2015 - [email protected]
+
+- Added patch:
+  * zero-dummy.patch
+    - Fix crash of ZERO VM built with gcc5
+
+-------------------------------------------------------------------
+Fri Jun  5 12:58:27 UTC 2015 - [email protected]
+
+- Added patch:
+  * signed-overflow.patch
+    - fix OOM due to signed overflow shown by gcc5 build
+
+-------------------------------------------------------------------
+Tue May 26 08:36:52 UTC 2015 - [email protected]
+
+- Use the tzdb.dat from tzdata-java8 package on distributions
+  that have it.
+
+-------------------------------------------------------------------
+Tue May  5 15:15:09 UTC 2015 - [email protected]
+
+- Added patch:
+  * hotspot-support-kernel-4.patch
+    * fix build on systems having kernel 4.0
+
+-------------------------------------------------------------------
+Thu Apr 16 15:47:54 UTC 2015 - [email protected]
+
+- Update the aarch64 tarball to the recent tip
+  * The revision has merged changes up to jdk8u45-b14
+- Apply cplusplus-interpreter.patch to the default hotspot tarball
+  only (aarch64 tarball has the patch integrated)
+
+-------------------------------------------------------------------
+Wed Apr 15 08:27:37 UTC 2015 - [email protected]
+
+- Upgrade to upstream tag jdk8u45-b14
+  * Security fix release of April 14, 2015
+
+-------------------------------------------------------------------
+Wed Apr  8 07:37:27 UTC 2015 - [email protected]
+
+- Build the accelerated aarch64 hotspot anew
+
+-------------------------------------------------------------------
+Thu Mar  5 16:40:27 UTC 2015 - [email protected]
+
+- Update the aarch64 tarball to a recent tip of the jdk8 repository
+
+-------------------------------------------------------------------
+Wed Mar  4 06:44:04 UTC 2015 - [email protected]
+
+- jdk8u40-b25 became officially jdk8u40 release
+  * Modify the package version
+
+-------------------------------------------------------------------
+Tue Feb 17 12:58:49 UTC 2015 - [email protected]
+
+- Modified patch
+  * system-libjpeg.patch
+    - correct the case mismatch that prevented JPEG decoder from
+      working correctly (bnc#905950)
+
+-------------------------------------------------------------------
+Mon Feb 16 08:01:42 UTC 2015 - [email protected]
+
+- Upgrade to upstream tag jdk8u40-b25
+
+-------------------------------------------------------------------
+Thu Feb  5 09:55:30 UTC 2015 - [email protected]
+
+- Upgrade to upstream tag jdk8u40-b24
+- Upgrade the aarch64 hotspot to new tip
+  * sync-ed with jdk8u40-b23
+- Removed patch
+  * aarch64-b12tob22.patch
+    - Not needed since the aarch64 tarball is on a recent enough
+      tag
+- Modified patch
+  * s390-size_t.patch
+    - Adapt to hotspot changes
+
+-------------------------------------------------------------------
+Tue Jan 27 07:52:58 UTC 2015 - [email protected]
+
+- Removed patch
+  * aarch64-b12tob21.patch
+    -  replaced by one that forward-ports to b22
+- Added patch
+  * aarch64-b12tob22.patch
+    - forward-port the aarch64 hotspot to b22. 
+
+-------------------------------------------------------------------
+Sun Jan 25 18:06:11 UTC 2015 - [email protected]
+
+- Modify patch: system-giflib5.patch
+  * Fix build with giflib 5.1.x
+
+-------------------------------------------------------------------
+Thu Jan 22 09:42:50 UTC 2015 - [email protected]
+
+- Upgrade to upstream tag jdk8u40-b22
+  * Security update from 2015-01-20
+
+-------------------------------------------------------------------
+Wed Jan 21 08:22:26 UTC 2015 - [email protected]
+
+- Upgrade to upstream tag jdk8u40-b21
+- Removed patch:
+  * aarch64-b12tob20.patch
+    - replaced by new version
++++ 199 more lines (skipped)
++++ between /dev/null
++++ and 
/work/SRC/openSUSE:13.2:Update/.java-1_8_0-openjdk.3996.new/java-1_8_0-openjdk.changes

New:
----
  1015432.patch
  10ad4b9d79f9.tar.bz2
  72a33aed7dcc.tar.bz2
  8ec803e97a0d.tar.bz2
  8f260851e051.tar.bz2
  975eb04d1795.tar.bz2
  PStack-808293.patch
  TestCryptoLevel.java
  _constraints
  aarch64-misc.patch
  adlc-parser.patch
  afbc08ea922b.tar.bz2
  be922f27d059.tar.bz2
  compare-pointer-with-literal.patch
  config.guess
  config.sub
  d50c3672fd18.tar.bz2
  disable-doclint-by-default.patch
  e8e293d0db49.tar.bz2
  icedtea-sound-1.0.1.tar.xz
  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-lcms.patch
  system-libjpeg.patch
  system-libpng.patch
  systemtap-tapset.tar.gz
  zero-dummy.patch
  zero-javadoc-verbose.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ java-1_8_0-openjdk.spec ++++++
++++ 1239 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);
      }
  }
}
++++++ _constraints ++++++
<constraints>
  <hardware>
    <physicalmemory>
      <size unit="M">2048</size>
    </physicalmemory>
    <disk>
      <size unit="G">6</size>
    </disk>
  </hardware>

  <overwrite>
    <conditions>
      <arch>armv7l</arch>
      <arch>armv6l</arch>
    </conditions>
    <hardware>
      <physicalmemory>
        <size unit="M">512</size>
      </physicalmemory>
    </hardware>
  </overwrite>

</constraints> 
++++++ aarch64-misc.patch ++++++
--- jdk8/common/autoconf/build-aux/autoconf-config.sub  2015-07-10 
06:29:38.191114297 +0200
+++ jdk8/common/autoconf/build-aux/autoconf-config.sub  2015-07-10 
07:44:34.468972246 +0200
@@ -264,6 +264,7 @@
        # Some are omitted here because they have special meanings below.
        1750a | 580 \
        | a29k \
+        | aarch64 \
        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | 
alpha64pca5[67] \
        | am33_2.0 \
@@ -340,6 +341,7 @@
        # Recognize the basic CPU types with company name.
        580-* \
        | a29k-* \
+        | aarch64-* \
        | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
        | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
        | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
--- jdk8/common/autoconf/generated-configure.sh 2015-07-10 06:29:38.193114252 
+0200
+++ jdk8/common/autoconf/generated-configure.sh 2015-07-10 07:44:34.477972040 
+0200
@@ -6835,6 +6835,12 @@
       VAR_CPU_BITS=64
       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
@@ -6972,6 +6978,12 @@
       VAR_CPU_BITS=64
       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
@@ -7942,11 +7954,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
@@ -7989,6 +7996,9 @@
   if test "x$OPENJDK_TARGET_CPU" = xaarch64; 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
@@ -29654,7 +29664,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
@@ -29899,6 +29909,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 2015-07-10 06:29:38.193114252 +0200
+++ jdk8/common/autoconf/jdk-options.m4 2015-07-10 07:44:34.479971994 +0200
@@ -164,6 +164,9 @@
   if test "x$OPENJDK_TARGET_CPU" = xaarch64; 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    2015-07-10 06:29:38.194114229 +0200
+++ jdk8/common/autoconf/platform.m4    2015-07-10 07:44:34.479971994 +0200
@@ -54,6 +54,12 @@
       VAR_CPU_BITS=64
       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   2015-07-10 06:29:38.194114229 +0200
+++ jdk8/common/autoconf/toolchain.m4   2015-07-10 07:44:34.479971994 +0200
@@ -957,7 +957,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
@@ -1237,6 +1237,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 2015-07-02 06:53:30.000000000 +0200
+++ jdk8/jdk/make/gensrc/GensrcMisc.gmk 2015-07-10 07:44:34.480971971 +0200
@@ -76,7 +76,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        2015-07-02 06:53:30.000000000 
+0200
+++ jdk8/jdk/make/lib/SoundLibraries.gmk        2015-07-10 07:44:34.480971971 
+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   2015-07-02 
06:53:30.000000000 +0200
+++ jdk8/jdk/src/share/native/com/sun/media/sound/SoundDefs.h   2015-07-10 
07:44:34.480971971 +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    2015-07-10 07:44:34.480971971 
+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() {
++++++ 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 ++++++
++++ 1420 lines (skipped)

++++++ config.sub ++++++
++++ 1805 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 <[email protected]>
Author: Emmanuel Bourg <[email protected]>
--- 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,
++++++ 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  2014-09-26 08:53:47.340118668 +0200
+++ jdk8/jdk/make/CompileLaunchers.gmk  2014-09-26 08:54:18.702392301 +0200
@@ -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        2014-09-26 08:53:47.341118645 
+0200
+++ jdk8/jdk/make/lib/Awt2dLibraries.gmk        2014-09-26 08:54:22.383307050 
+0200
@@ -760,10 +760,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 ++++++
diff -urEbwB jdk8/common/autoconf/boot-jdk.m4 jdk8/common/autoconf/boot-jdk.m4
--- jdk8/common/autoconf/boot-jdk.m4    2014-10-28 18:10:36.000000000 +0100
+++ jdk8/common/autoconf/boot-jdk.m4    2014-11-11 12:54:41.698246995 +0100
@@ -319,21 +319,12 @@
   AC_MSG_CHECKING([flags for boot jdk java command for big workloads])
 
   # Starting amount of heap memory.
-  ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA])
+  ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs_big,[$JAVA])
 
   # Maximum amount of heap memory.
   # Maximum stack size.
-  if test "x$BUILD_NUM_BITS" = x32; then
-    JVM_MAX_HEAP=1100M
+  JVM_MAX_HEAP=768M
     STACK_SIZE=768
-  else
-    # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit
-    # pointers are used. Apparently, we need to increase the heap and stack
-    # space for the jvm. More specifically, when running javac to build huge
-    # jdk batch
-    JVM_MAX_HEAP=1600M
-    STACK_SIZE=1536
-  fi
   ADD_JVM_ARG_IF_OK([-Xmx$JVM_MAX_HEAP],boot_jdk_jvmargs_big,[$JAVA])
   
ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],boot_jdk_jvmargs_big,[$JAVA])
   ADD_JVM_ARG_IF_OK([-XX:PermSize=32m],boot_jdk_jvmargs_big,[$JAVA])
++++++ s390-size_t.patch ++++++
--- 
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
        2015-02-06 12:41:58.252468796 +0100
+++ 
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
        2015-02-06 12:42:56.781083256 +0100
@@ -2659,7 +2659,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
   2015-02-06 12:41:58.252468796 +0100
+++ 
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
   2015-02-06 12:42:56.784083185 +0100
@@ -957,7 +957,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: ");
@@ -6575,7 +6575,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() &&
@@ -6874,7 +6874,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   
2015-02-06 12:41:58.253468772 +0100
+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp   
2015-02-06 12:42:56.785083162 +0100
@@ -3902,7 +3902,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  
2015-02-06 12:41:58.254468748 +0100
+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp  
2015-02-06 12:42:56.787083115 +0100
@@ -1738,7 +1738,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       
2015-02-06 12:41:58.255468724 +0100
+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp       
2015-02-06 12:42:56.787083115 +0100
@@ -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       
2015-02-06 12:41:58.255468724 +0100
+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp       
2015-02-06 12:42:56.788083092 +0100
@@ -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       
2015-02-06 12:41:58.256468700 +0100
+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp       
2015-02-06 12:42:56.788083092 +0100
@@ -147,7 +147,7 @@
   if (FLAG_IS_DEFAULT(G1HeapRegionSize)) {
     size_t average_heap_size = (initial_heap_size + max_heap_size) / 2;
     region_size = MAX2(average_heap_size / HeapRegionBounds::target_number(),
-                       (uintx) HeapRegionBounds::min_size());
+                       (size_t) HeapRegionBounds::min_size());
   }
 
   int region_size_log = log2_long((jlong) region_size);
--- 
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
  2015-02-06 12:41:58.258468651 +0100
+++ 
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
  2015-02-06 12:42:56.789083068 +0100
@@ -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     
2015-02-06 12:41:58.257468675 +0100
+++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp     
2015-02-06 12:42:56.790083045 +0100
@@ -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        2015-02-06 
12:41:58.263468530 +0100
+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp        2015-02-06 
12:42:56.790083045 +0100
@@ -385,7 +385,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
@@ -433,7 +433,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");
 
@@ -455,23 +455,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");
@@ -573,7 +573,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      2015-02-06 
12:41:58.264468506 +0100
+++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp      2015-02-06 
12:42:56.791083021 +0100
@@ -1455,7 +1455,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) {
@@ -1515,7 +1515,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: ");
@@ -1573,7 +1573,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"
@@ -3245,7 +3245,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/oops/objArrayKlass.inline.hpp     2015-02-06 
12:41:58.267468433 +0100
+++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp     2015-02-06 
12:42:56.792082998 +0100
@@ -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     2015-02-06 
12:41:58.277468191 +0100
+++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp     2015-02-06 
12:42:56.794082951 +0100
@@ -1277,7 +1277,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);
     }
@@ -1302,8 +1302,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);
@@ -1313,7 +1313,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);
++++++ system-lcms.patch ++++++
--- jdk8/common/autoconf/libraries.m4   2014-09-26 08:49:01.572737814 +0200
+++ jdk8/common/autoconf/libraries.m4   2014-09-26 08:50:22.896853996 +0200
@@ -679,6 +679,46 @@
 
   
###############################################################################
   #
+  # 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
   #
 
--- jdk8/jdk/make/lib/Awt2dLibraries.gmk        2014-09-26 08:49:00.981751504 
+0200
+++ jdk8/jdk/make/lib/Awt2dLibraries.gmk        2014-09-26 08:50:22.897853978 
+0200
@@ -669,8 +669,8 @@
 
##########################################################################################
 
 # 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, \
@@ -688,19 +688,19 @@
     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)
 
 
##########################################################################################
 
--- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java    2014-09-26 
08:49:00.646759264 +0200
+++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java    2014-09-26 
08:50:22.897853978 +0200
@@ -207,7 +207,7 @@
                          * disposer frameworks
                          */
                         System.loadLibrary("awt");
-                        System.loadLibrary("lcms");
+                        System.loadLibrary("javalcms");
                         return null;
                     }
                 });
++++++ system-libjpeg.patch ++++++
--- jdk8/common/autoconf/libraries.m4   2015-02-17 13:27:11.468829365 +0100
+++ jdk8/common/autoconf/libraries.m4   2015-02-17 13:27:49.143980484 +0100
@@ -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        2015-02-17 13:25:22.125292473 
+0100
+++ jdk8/jdk/make/lib/Awt2dLibraries.gmk        2015-02-17 13:28:30.812041352 
+0100
@@ -704,18 +704,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
 
@@ -730,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)
 
 
##########################################################################################
 
@@ -1206,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
@@ -1268,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    
    2015-02-17 13:25:22.295288644 +0100
+++ 
jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java    
    2015-02-17 13:27:49.145980439 +0100
@@ -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    
    2015-02-17 13:25:22.295288644 +0100
+++ 
jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java    
    2015-02-17 13:27:49.145980439 +0100
@@ -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      
2015-02-17 13:25:22.170291459 +0100
+++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java      
2015-02-17 13:27:49.146980416 +0100
@@ -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  2015-02-17 
13:25:22.531283329 +0100
+++ jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c  2015-02-17 
13:27:49.146980416 +0100
@@ -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  
2015-02-17 13:25:22.539283148 +0100
+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c  
2015-02-17 13:27:49.147980394 +0100
@@ -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>
 
@@ -113,11 +113,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   2014-09-26 08:45:01.057310067 +0200
+++ jdk8/common/autoconf/libraries.m4   2014-09-26 08:46:38.602049970 +0200
@@ -679,6 +679,47 @@
 
   
###############################################################################
   #
+  # 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    2014-09-26 08:45:01.057310067 +0200
+++ jdk8/common/autoconf/spec.gmk.in    2014-09-26 08:46:38.603049945 +0200
@@ -555,6 +555,7 @@
 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        2014-09-26 08:45:00.475323552 
+0200
+++ jdk8/jdk/make/lib/Awt2dLibraries.gmk        2014-09-26 08:46:38.603049945 
+0200
@@ -1211,7 +1211,6 @@
 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)
@@ -1228,6 +1227,13 @@
     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
@@ -1291,12 +1297,12 @@
       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   
2014-09-26 08:45:00.414324966 +0200
+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c   
2014-09-26 08:46:38.603049945 +0200
@@ -25,8 +25,7 @@
 
 #include "splashscreen_impl.h"
 
-#include "../libpng/png.h"
-
+#include <png.h>
 #include <setjmp.h>
 
 #define SIG_BYTES 8
++++++ zero-dummy.patch ++++++
--- jdk8/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp     2015-06-10 
10:06:49.485230587 +0200
+++ jdk8/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp     2015-06-10 
10:07:33.645229254 +0200
@@ -55,8 +55,8 @@
 #include "utilities/vmError.hpp"
 
 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) {
++++++ zero-javadoc-verbose.patch ++++++
Index: jdk8u-3e6d3c8810ee/make/Javadoc.gmk
===================================================================
--- jdk8u-3e6d3c8810ee.orig/make/Javadoc.gmk
+++ jdk8u-3e6d3c8810ee/make/Javadoc.gmk
@@ -260,7 +260,6 @@ $(call CopyrightLine,$(COPYRIGHT_URL),$(
 # Common javadoc options used by all
 COMMON_JAVADOCFLAGS = \
     -XDignore.symbol.file=true \
-    -quiet \
     -use \
     -keywords \
     -Xdoclint:none \

Reply via email to