From d934b529edd62c2a9667514982664704af634aef Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Mar 26 2015 11:00:12 +0000 Subject: import java-1.8.0-openjdk-1.8.0.31-7.b13.el7_1 --- diff --git a/SOURCES/PStack-808293.patch b/SOURCES/PStack-808293.patch deleted file mode 100644 index eb8b8a0..0000000 --- a/SOURCES/PStack-808293.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- 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) { diff --git a/SOURCES/RH1187252.java b/SOURCES/RH1187252.java new file mode 100644 index 0000000..79a5596 --- /dev/null +++ b/SOURCES/RH1187252.java @@ -0,0 +1,15 @@ +import java.util.Properties; + +public class RH1187252 +{ + public static void main(String[] args) + { + Properties props = System.getProperties(); + String[] archProps = {"java.library.path", + "sun.boot.library.path", + "os.arch"}; + for (String prop : archProps) + System.out.printf("%s = %s\n", prop, + props.getProperty(prop)); + } +} diff --git a/SOURCES/enableArm64.patch b/SOURCES/enableArm64.patch index a62d224..385d542 100644 --- a/SOURCES/enableArm64.patch +++ b/SOURCES/enableArm64.patch @@ -65,18 +65,17 @@ esac --- jdk8/common/autoconf/jdk-options.m4 +++ jdk8/common/autoconf/jdk-options.m4 -@@ -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'` +@@ -119,7 +119,9 @@ -- if test "x$JVM_VARIANT_CLIENT" = xtrue; then -- if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then + 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$OPENJDK_TARGET_CPU" != xaarch64; then ++ AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.]) ++ fi + 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.]) @@ -159,6 +154,9 @@ INCLUDE_SA=false fi diff --git a/SOURCES/java-1.8.0-openjdk-PStack-808293.patch b/SOURCES/java-1.8.0-openjdk-PStack-808293.patch new file mode 100644 index 0000000..eb8b8a0 --- /dev/null +++ b/SOURCES/java-1.8.0-openjdk-PStack-808293.patch @@ -0,0 +1,40 @@ +--- 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) { diff --git a/SOURCES/java-1.8.0-openjdk-remove-intree-libraries.sh b/SOURCES/java-1.8.0-openjdk-remove-intree-libraries.sh new file mode 100644 index 0000000..76a4156 --- /dev/null +++ b/SOURCES/java-1.8.0-openjdk-remove-intree-libraries.sh @@ -0,0 +1,127 @@ +#!/bin/sh + +ZIP_SRC=jdk8/jdk/src/share/native/java/util/zip/zlib-* +JPEG_SRC=jdk8/jdk/src/share/native/sun/awt/image/jpeg +GIF_SRC=jdk8/jdk/src/share/native/sun/awt/giflib +PNG_SRC=jdk8/jdk/src/share/native/sun/awt/libpng +LCMS_SRC=jdk8/jdk/src/share/native/sun/java2d/cmm/lcms + +echo "Removing built-in libs (they will be linked)" + +echo "Removing zlib" +if [ ! -d ${ZIP_SRC} ]; then + echo "${ZIP_SRC} does not exist. Refusing to proceed." + exit 1 +fi +rm -rvf ${ZIP_SRC} + +echo "Removing libjpeg" +if [ ! -f ${JPEG_SRC}/jdhuff.c ]; then # some file that sound definitely exist + echo "${JPEG_SRC} does not contain jpeg sources. Refusing to proceed." + exit 1 +fi + +rm -vf ${JPEG_SRC}/jcomapi.c +rm -vf ${JPEG_SRC}/jdapimin.c +rm -vf ${JPEG_SRC}/jdapistd.c +rm -vf ${JPEG_SRC}/jdcoefct.c +rm -vf ${JPEG_SRC}/jdcolor.c +rm -vf ${JPEG_SRC}/jdct.h +rm -vf ${JPEG_SRC}/jddctmgr.c +rm -vf ${JPEG_SRC}/jdhuff.c +rm -vf ${JPEG_SRC}/jdhuff.h +rm -vf ${JPEG_SRC}/jdinput.c +rm -vf ${JPEG_SRC}/jdmainct.c +rm -vf ${JPEG_SRC}/jdmarker.c +rm -vf ${JPEG_SRC}/jdmaster.c +rm -vf ${JPEG_SRC}/jdmerge.c +rm -vf ${JPEG_SRC}/jdphuff.c +rm -vf ${JPEG_SRC}/jdpostct.c +rm -vf ${JPEG_SRC}/jdsample.c +rm -vf ${JPEG_SRC}/jerror.c +rm -vf ${JPEG_SRC}/jerror.h +rm -vf ${JPEG_SRC}/jidctflt.c +rm -vf ${JPEG_SRC}/jidctfst.c +rm -vf ${JPEG_SRC}/jidctint.c +rm -vf ${JPEG_SRC}/jidctred.c +rm -vf ${JPEG_SRC}/jinclude.h +rm -vf ${JPEG_SRC}/jmemmgr.c +rm -vf ${JPEG_SRC}/jmemsys.h +rm -vf ${JPEG_SRC}/jmemnobs.c +rm -vf ${JPEG_SRC}/jmorecfg.h +rm -vf ${JPEG_SRC}/jpegint.h +rm -vf ${JPEG_SRC}/jpeglib.h +rm -vf ${JPEG_SRC}/jquant1.c +rm -vf ${JPEG_SRC}/jquant2.c +rm -vf ${JPEG_SRC}/jutils.c +rm -vf ${JPEG_SRC}/jcapimin.c +rm -vf ${JPEG_SRC}/jcapistd.c +rm -vf ${JPEG_SRC}/jccoefct.c +rm -vf ${JPEG_SRC}/jccolor.c +rm -vf ${JPEG_SRC}/jcdctmgr.c +rm -vf ${JPEG_SRC}/jchuff.c +rm -vf ${JPEG_SRC}/jchuff.h +rm -vf ${JPEG_SRC}/jcinit.c +rm -vf ${JPEG_SRC}/jconfig.h +rm -vf ${JPEG_SRC}/jcmainct.c +rm -vf ${JPEG_SRC}/jcmarker.c +rm -vf ${JPEG_SRC}/jcmaster.c +rm -vf ${JPEG_SRC}/jcparam.c +rm -vf ${JPEG_SRC}/jcphuff.c +rm -vf ${JPEG_SRC}/jcprepct.c +rm -vf ${JPEG_SRC}/jcsample.c +rm -vf ${JPEG_SRC}/jctrans.c +rm -vf ${JPEG_SRC}/jdtrans.c +rm -vf ${JPEG_SRC}/jfdctflt.c +rm -vf ${JPEG_SRC}/jfdctfst.c +rm -vf ${JPEG_SRC}/jfdctint.c +rm -vf ${JPEG_SRC}/jversion.h +rm -vf ${JPEG_SRC}/README + +echo "Removing giflib" +if [ ! -d ${GIF_SRC} ]; then + echo "${GIF_SRC} does not exist. Refusing to proceed." + exit 1 +fi +rm -rvf ${GIF_SRC} + +echo "Removing libpng" +if [ ! -d ${PNG_SRC} ]; then + echo "${PNG_SRC} does not exist. Refusing to proceed." + exit 1 +fi +rm -rvf ${PNG_SRC} + +echo "Removing lcms" +if [ ! -d ${LCMS_SRC} ]; then + echo "${LCMS_SRC} does not exist. Refusing to proceed." + exit 1 +fi +rm -vf ${LCMS_SRC}/cmscam02.c +rm -vf ${LCMS_SRC}/cmscgats.c +rm -vf ${LCMS_SRC}/cmscnvrt.c +rm -vf ${LCMS_SRC}/cmserr.c +rm -vf ${LCMS_SRC}/cmsgamma.c +rm -vf ${LCMS_SRC}/cmsgmt.c +rm -vf ${LCMS_SRC}/cmshalf.c +rm -vf ${LCMS_SRC}/cmsintrp.c +rm -vf ${LCMS_SRC}/cmsio0.c +rm -vf ${LCMS_SRC}/cmsio1.c +rm -vf ${LCMS_SRC}/cmslut.c +rm -vf ${LCMS_SRC}/cmsmd5.c +rm -vf ${LCMS_SRC}/cmsmtrx.c +rm -vf ${LCMS_SRC}/cmsnamed.c +rm -vf ${LCMS_SRC}/cmsopt.c +rm -vf ${LCMS_SRC}/cmspack.c +rm -vf ${LCMS_SRC}/cmspcs.c +rm -vf ${LCMS_SRC}/cmsplugin.c +rm -vf ${LCMS_SRC}/cmsps2.c +rm -vf ${LCMS_SRC}/cmssamp.c +rm -vf ${LCMS_SRC}/cmssm.c +rm -vf ${LCMS_SRC}/cmstypes.c +rm -vf ${LCMS_SRC}/cmsvirt.c +rm -vf ${LCMS_SRC}/cmswtpnt.c +rm -vf ${LCMS_SRC}/cmsxform.c +rm -vf ${LCMS_SRC}/lcms2.h +rm -vf ${LCMS_SRC}/lcms2_internal.h +rm -vf ${LCMS_SRC}/lcms2_plugin.h diff --git a/SOURCES/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch b/SOURCES/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch new file mode 100644 index 0000000..2933063 --- /dev/null +++ b/SOURCES/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch @@ -0,0 +1,40 @@ +# HG changeset patch +# User andrew +# Date 1424102734 0 +# Mon Feb 16 16:05:34 2015 +0000 +# Node ID 4fdaf786d977aa77afdb68b8829579d31069e39c +# Parent 01a0011cc101f3308c5876db8282c0fc5e3ba2e6 +PR2236: ppc64le should report its os.arch as ppc64le so tools can detect it +Summary: Use ppc64le as the arch directory on that platform and report it in os.arch + +--- openjdk/hotspot/make/defs.make.orig 2015-03-03 17:05:51.000000000 -0500 ++++ openjdk/hotspot/make/defs.make 2015-03-03 19:18:20.000000000 -0500 +@@ -319,6 +319,13 @@ + LIBARCH/arm = arm + LIBARCH/zero = $(ZERO_LIBARCH) + ++ # Override LIBARCH for ppc64le ++ ifeq ($(ARCH), ppc64) ++ ifeq ($(OPENJDK_TARGET_CPU_ENDIAN), little) ++ LIBARCH = ppc64le ++ endif ++ endif ++ + LP64_ARCH = sparcv9 amd64 ppc64 aarch64 ia64 zero + endif + +diff -r 01a0011cc101 -r 4fdaf786d977 src/os/linux/vm/os_linux.cpp +--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp Mon Feb 16 13:18:10 2015 +0000 ++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp Mon Feb 16 16:05:34 2015 +0000 +@@ -305,7 +305,11 @@ + #elif defined(PPC32) + static char cpu_arch[] = "ppc"; + #elif defined(PPC64) ++#if defined(VM_LITTLE_ENDIAN) ++static char cpu_arch[] = "ppc64le"; ++#else + static char cpu_arch[] = "ppc64"; ++#endif + #elif defined(SPARC) + # ifdef _LP64 + static char cpu_arch[] = "sparcv9"; diff --git a/SOURCES/java-1.8.0-openjdk-rh1191652-hotspot.patch b/SOURCES/java-1.8.0-openjdk-rh1191652-hotspot.patch new file mode 100644 index 0000000..cc4aced --- /dev/null +++ b/SOURCES/java-1.8.0-openjdk-rh1191652-hotspot.patch @@ -0,0 +1,32 @@ +diff -r 9d6eb2757167 make/defs.make +--- openjdk/hotspot/make/defs.make Wed Feb 11 18:56:26 2015 -0800 ++++ openjdk/hotspot/make/defs.make Tue Feb 17 16:39:22 2015 +0000 +@@ -317,6 +317,13 @@ + LIBARCH/arm = arm + LIBARCH/zero = $(ZERO_LIBARCH) + ++ # Override LIBARCH for ppc64le ++ ifeq ($(ARCH), ppc64) ++ ifeq ($(OPENJDK_TARGET_CPU_ENDIAN), little) ++ LIBARCH = ppc64le ++ endif ++ endif ++ + LP64_ARCH = sparcv9 amd64 ia64 ppc64 zero + endif + +diff -r 9d6eb2757167 src/os/linux/vm/os_linux.cpp +--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp Wed Feb 11 18:56:26 2015 -0800 ++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp Tue Feb 17 16:39:22 2015 +0000 +@@ -265,7 +265,11 @@ + #elif defined(PPC32) + static char cpu_arch[] = "ppc"; + #elif defined(PPC64) ++#if defined(VM_LITTLE_ENDIAN) ++static char cpu_arch[] = "ppc64le"; ++#else + static char cpu_arch[] = "ppc64"; ++#endif + #elif defined(SPARC) + # ifdef _LP64 + static char cpu_arch[] = "sparcv9"; diff --git a/SOURCES/java-1.8.0-openjdk-rh1191652-jdk.patch b/SOURCES/java-1.8.0-openjdk-rh1191652-jdk.patch new file mode 100644 index 0000000..e32ffb6 --- /dev/null +++ b/SOURCES/java-1.8.0-openjdk-rh1191652-jdk.patch @@ -0,0 +1,62 @@ +--- openjdk/jdk/make/lib/SoundLibraries.gmk.orig 2015-03-03 20:52:33.000000000 -0500 ++++ openjdk/jdk/make/lib/SoundLibraries.gmk 2015-03-03 20:54:39.000000000 -0500 +@@ -140,6 +140,10 @@ + LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64 + endif + ++ ifeq ($(OPENJDK_TARGET_CPU), ppc64le) ++ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64LE ++ endif ++ + ifeq ($(OPENJDK_TARGET_CPU), aarch64) + LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64 + endif +diff -r 87c95759b92b src/share/native/com/sun/media/sound/SoundDefs.h +--- openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Feb 11 18:55:05 2015 -0800 ++++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Feb 17 18:25:01 2015 +0000 +@@ -43,6 +43,8 @@ + #define X_ZERO 6 + #define X_ARM 7 + #define X_PPC 8 ++#define X_PPC64 9 ++#define X_PPC64LE 10 + + // ********************************** + // Make sure you set X_PLATFORM and X_ARCH defines correctly. +diff -r 87c95759b92b src/solaris/bin/ppc64le/jvm.cfg +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg Tue Feb 17 18:25:01 2015 +0000 +@@ -0,0 +1,33 @@ ++# 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=" option, but that too is unsupported ++# and may not be available in a future release. ++# ++-server KNOWN diff --git a/SOURCES/java-1.8.0-openjdk-rh1191652-root.patch b/SOURCES/java-1.8.0-openjdk-rh1191652-root.patch new file mode 100644 index 0000000..7483623 --- /dev/null +++ b/SOURCES/java-1.8.0-openjdk-rh1191652-root.patch @@ -0,0 +1,50 @@ +diff -r 590cc3ca1fec common/autoconf/hotspot-spec.gmk.in +--- openjdk///common/autoconf/hotspot-spec.gmk.in Wed Feb 11 12:18:34 2015 -0800 ++++ openjdk///common/autoconf/hotspot-spec.gmk.in Wed Feb 18 12:10:19 2015 +0000 +@@ -71,6 +71,10 @@ + LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB) + # Old name for OPENJDK_TARGET_CPU, uses i586 and amd64, instead of x86 and x86_64. + ARCH=$(OPENJDK_TARGET_CPU_LEGACY) ++# ppc64le uses the HotSpot ppc64 build ++ifeq ($(OPENJDK_TARGET_CPU), ppc64le) ++ ARCH=ppc64 ++endif + # Legacy setting for building for a 64 bit machine. + # If yes then this expands to _LP64:=1 + @LP64@ +--- openjdk/common/autoconf/jdk-options.m4.orig 2015-03-03 20:13:00.000000000 -0500 ++++ openjdk/common/autoconf/jdk-options.m4 2015-03-03 20:36:17.000000000 -0500 +@@ -153,7 +153,7 @@ + if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then + INCLUDE_SA=false + fi +- if test "x$VAR_CPU" = xppc64 ; then ++ if test "x$VAR_CPU" = xppc64 -o "x$VAR_CPU" = xppc64le ; then + INCLUDE_SA=false + fi + if test "x$OPENJDK_TARGET_CPU" = xaarch64; then +diff -r 590cc3ca1fec common/autoconf/platform.m4 +--- openjdk///common/autoconf/platform.m4 Wed Feb 11 12:18:34 2015 -0800 ++++ openjdk///common/autoconf/platform.m4 Wed Feb 18 12:10:19 2015 +0000 +@@ -61,7 +61,7 @@ + VAR_CPU_ENDIAN=big + ;; + powerpc64le) +- VAR_CPU=ppc64 ++ VAR_CPU=ppc64le + VAR_CPU_ARCH=ppc + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=little +diff -r 590cc3ca1fec common/autoconf/toolchain.m4 +--- openjdk///common/autoconf/toolchain.m4 Wed Feb 11 12:18:34 2015 -0800 ++++ openjdk///common/autoconf/toolchain.m4 Wed Feb 18 12:10:19 2015 +0000 +@@ -1056,6 +1056,9 @@ + else + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN" + fi ++ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then ++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DABI_ELFv2" ++ fi + if test "x$OPENJDK_TARGET_OS" = xlinux; then + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX" + fi diff --git a/SOURCES/remove-intree-libraries.sh b/SOURCES/remove-intree-libraries.sh deleted file mode 100644 index 76a4156..0000000 --- a/SOURCES/remove-intree-libraries.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/sh - -ZIP_SRC=jdk8/jdk/src/share/native/java/util/zip/zlib-* -JPEG_SRC=jdk8/jdk/src/share/native/sun/awt/image/jpeg -GIF_SRC=jdk8/jdk/src/share/native/sun/awt/giflib -PNG_SRC=jdk8/jdk/src/share/native/sun/awt/libpng -LCMS_SRC=jdk8/jdk/src/share/native/sun/java2d/cmm/lcms - -echo "Removing built-in libs (they will be linked)" - -echo "Removing zlib" -if [ ! -d ${ZIP_SRC} ]; then - echo "${ZIP_SRC} does not exist. Refusing to proceed." - exit 1 -fi -rm -rvf ${ZIP_SRC} - -echo "Removing libjpeg" -if [ ! -f ${JPEG_SRC}/jdhuff.c ]; then # some file that sound definitely exist - echo "${JPEG_SRC} does not contain jpeg sources. Refusing to proceed." - exit 1 -fi - -rm -vf ${JPEG_SRC}/jcomapi.c -rm -vf ${JPEG_SRC}/jdapimin.c -rm -vf ${JPEG_SRC}/jdapistd.c -rm -vf ${JPEG_SRC}/jdcoefct.c -rm -vf ${JPEG_SRC}/jdcolor.c -rm -vf ${JPEG_SRC}/jdct.h -rm -vf ${JPEG_SRC}/jddctmgr.c -rm -vf ${JPEG_SRC}/jdhuff.c -rm -vf ${JPEG_SRC}/jdhuff.h -rm -vf ${JPEG_SRC}/jdinput.c -rm -vf ${JPEG_SRC}/jdmainct.c -rm -vf ${JPEG_SRC}/jdmarker.c -rm -vf ${JPEG_SRC}/jdmaster.c -rm -vf ${JPEG_SRC}/jdmerge.c -rm -vf ${JPEG_SRC}/jdphuff.c -rm -vf ${JPEG_SRC}/jdpostct.c -rm -vf ${JPEG_SRC}/jdsample.c -rm -vf ${JPEG_SRC}/jerror.c -rm -vf ${JPEG_SRC}/jerror.h -rm -vf ${JPEG_SRC}/jidctflt.c -rm -vf ${JPEG_SRC}/jidctfst.c -rm -vf ${JPEG_SRC}/jidctint.c -rm -vf ${JPEG_SRC}/jidctred.c -rm -vf ${JPEG_SRC}/jinclude.h -rm -vf ${JPEG_SRC}/jmemmgr.c -rm -vf ${JPEG_SRC}/jmemsys.h -rm -vf ${JPEG_SRC}/jmemnobs.c -rm -vf ${JPEG_SRC}/jmorecfg.h -rm -vf ${JPEG_SRC}/jpegint.h -rm -vf ${JPEG_SRC}/jpeglib.h -rm -vf ${JPEG_SRC}/jquant1.c -rm -vf ${JPEG_SRC}/jquant2.c -rm -vf ${JPEG_SRC}/jutils.c -rm -vf ${JPEG_SRC}/jcapimin.c -rm -vf ${JPEG_SRC}/jcapistd.c -rm -vf ${JPEG_SRC}/jccoefct.c -rm -vf ${JPEG_SRC}/jccolor.c -rm -vf ${JPEG_SRC}/jcdctmgr.c -rm -vf ${JPEG_SRC}/jchuff.c -rm -vf ${JPEG_SRC}/jchuff.h -rm -vf ${JPEG_SRC}/jcinit.c -rm -vf ${JPEG_SRC}/jconfig.h -rm -vf ${JPEG_SRC}/jcmainct.c -rm -vf ${JPEG_SRC}/jcmarker.c -rm -vf ${JPEG_SRC}/jcmaster.c -rm -vf ${JPEG_SRC}/jcparam.c -rm -vf ${JPEG_SRC}/jcphuff.c -rm -vf ${JPEG_SRC}/jcprepct.c -rm -vf ${JPEG_SRC}/jcsample.c -rm -vf ${JPEG_SRC}/jctrans.c -rm -vf ${JPEG_SRC}/jdtrans.c -rm -vf ${JPEG_SRC}/jfdctflt.c -rm -vf ${JPEG_SRC}/jfdctfst.c -rm -vf ${JPEG_SRC}/jfdctint.c -rm -vf ${JPEG_SRC}/jversion.h -rm -vf ${JPEG_SRC}/README - -echo "Removing giflib" -if [ ! -d ${GIF_SRC} ]; then - echo "${GIF_SRC} does not exist. Refusing to proceed." - exit 1 -fi -rm -rvf ${GIF_SRC} - -echo "Removing libpng" -if [ ! -d ${PNG_SRC} ]; then - echo "${PNG_SRC} does not exist. Refusing to proceed." - exit 1 -fi -rm -rvf ${PNG_SRC} - -echo "Removing lcms" -if [ ! -d ${LCMS_SRC} ]; then - echo "${LCMS_SRC} does not exist. Refusing to proceed." - exit 1 -fi -rm -vf ${LCMS_SRC}/cmscam02.c -rm -vf ${LCMS_SRC}/cmscgats.c -rm -vf ${LCMS_SRC}/cmscnvrt.c -rm -vf ${LCMS_SRC}/cmserr.c -rm -vf ${LCMS_SRC}/cmsgamma.c -rm -vf ${LCMS_SRC}/cmsgmt.c -rm -vf ${LCMS_SRC}/cmshalf.c -rm -vf ${LCMS_SRC}/cmsintrp.c -rm -vf ${LCMS_SRC}/cmsio0.c -rm -vf ${LCMS_SRC}/cmsio1.c -rm -vf ${LCMS_SRC}/cmslut.c -rm -vf ${LCMS_SRC}/cmsmd5.c -rm -vf ${LCMS_SRC}/cmsmtrx.c -rm -vf ${LCMS_SRC}/cmsnamed.c -rm -vf ${LCMS_SRC}/cmsopt.c -rm -vf ${LCMS_SRC}/cmspack.c -rm -vf ${LCMS_SRC}/cmspcs.c -rm -vf ${LCMS_SRC}/cmsplugin.c -rm -vf ${LCMS_SRC}/cmsps2.c -rm -vf ${LCMS_SRC}/cmssamp.c -rm -vf ${LCMS_SRC}/cmssm.c -rm -vf ${LCMS_SRC}/cmstypes.c -rm -vf ${LCMS_SRC}/cmsvirt.c -rm -vf ${LCMS_SRC}/cmswtpnt.c -rm -vf ${LCMS_SRC}/cmsxform.c -rm -vf ${LCMS_SRC}/lcms2.h -rm -vf ${LCMS_SRC}/lcms2_internal.h -rm -vf ${LCMS_SRC}/lcms2_plugin.h diff --git a/SPECS/java-1.8.0-openjdk.spec b/SPECS/java-1.8.0-openjdk.spec index 945ba07..6be3d8f 100644 --- a/SPECS/java-1.8.0-openjdk.spec +++ b/SPECS/java-1.8.0-openjdk.spec @@ -25,9 +25,12 @@ %ifarch ppc %global archinstall ppc %endif -%ifarch %{power64} +%ifarch %{ppc64be} %global archinstall ppc64 %endif +%ifarch %{ppc64le} +%global archinstall ppc64le +%endif %ifarch %{ix86} %global archinstall i386 %endif @@ -123,7 +126,7 @@ Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 2.%{buildver}%{?dist} +Release: 7.%{buildver}%{?dist} # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -164,11 +167,14 @@ Source10: policytool.desktop.in Source11: nss.cfg # Removed libraries that we link instead -Source12: remove-intree-libraries.sh +Source12: %{name}-remove-intree-libraries.sh # Ensure we aren't using the limited crypto policy Source13: TestCryptoLevel.java +# Print library settings from JDK +Source14: RH1187252.java + # New versions of config files with aarch64 support. This is not upstream yet. Source100: config.guess Source101: config.sub @@ -181,7 +187,7 @@ Patch1: %{name}-accessible-toolkit.patch # Restrict access to java-atk-wrapper classes Patch3: java-atk-wrapper-security.patch # RHBZ 808293 -Patch4: PStack-808293.patch +Patch4: %{name}-PStack-808293.patch # Allow multiple initialization of PKCS11 libraries Patch5: multiple-pkcs11-library-init.patch # Include all sources in src.zip @@ -214,6 +220,12 @@ Patch401: fix_ZERO_ARCHDEF_ppc.patch # https://bugs.openjdk.java.net/browse/JDK-8067331 Patch402: atomic_linux_zero.inline.hpp.patch +# RH1191652; fix name of ppc64le architecture +Patch500: %{name}-rh1191652-hotspot.patch +Patch501: %{name}-rh1191652-root.patch +Patch502: %{name}-rh1191652-jdk.patch +Patch503: %{name}-rh1191652-hotspot-aarch64.patch + Patch9999: enableArm64.patch BuildRequires: autoconf @@ -242,7 +254,7 @@ BuildRequires: pkgconfig BuildRequires: xorg-x11-proto-devel #BuildRequires: redhat-lsb BuildRequires: zip -BuildRequires: java-1.8.0-openjdk-devel +BuildRequires: java-1.7.0-openjdk-devel # Zero-assembler build requirement. %ifnarch %{jit_arches} BuildRequires: libffi-devel @@ -400,6 +412,7 @@ need to. %prep %setup -q -c -n %{uniquesuffix} -T -a 0 +ln -s jdk8 openjdk %ifarch %{aarch64} pushd jdk8 rm -r hotspot @@ -420,9 +433,8 @@ cp %{SOURCE101} jdk8/common/autoconf/build-aux/ # Remove libraries that are linked sh %{SOURCE12} -%ifarch %{aarch64} +# Add AArch64 support to configure & JDK build %patch9999 -%endif %patch201 %patch202 @@ -448,6 +460,16 @@ sh %{SOURCE12} %patch401 %patch402 +# HotSpot ppc64le patch is different depending +# on whether we are using 2.5 or 2.6 HotSpot. +%ifarch %{aarch64} +%patch503 +%else +%patch500 +%endif +%patch501 +%patch502 + # Extract systemtap tapsets %if %{with_systemtap} @@ -525,7 +547,7 @@ bash ../../configure \ %ifarch %{aarch64} --with-user-release-suffix="aarch64-%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}" \ %endif - --with-boot-jdk=/usr/lib/jvm/java-openjdk \ + --with-boot-jdk=/usr/lib/jvm/java-1.7.0-openjdk \ --with-debug-level=%{debugbuild} \ --enable-unlimited-crypto \ --with-zlib=system \ @@ -538,6 +560,9 @@ bash ../../configure \ --with-extra-cflags="$EXTRA_CFLAGS" \ --with-num-cores="$NUM_PROC" +cat spec.gmk +cat hotspot-spec.gmk + # The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist # disables FDS for all build configs and reverts to pre-FDS make logic. # STRIP_POLICY=none says don't do any stripping. DEBUG_BINARIES=true says @@ -576,6 +601,10 @@ echo "sun.zoneinfo.dir=/usr/share/javazi" >> $JAVA_HOME/jre/lib/tz.properties $JAVA_HOME/bin/javac -d . %{SOURCE13} $JAVA_HOME/bin/java TestCryptoLevel +# Print library paths from JDK +$JAVA_HOME/bin/javac -d . %{SOURCE14} +$JAVA_HOME/bin/java RH1187252 + # Check debug symbols are present and can identify code SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so" if [ -f "$SERVER_JVM" ] ; then @@ -1250,9 +1279,11 @@ exit 0 %config(noreplace) %{_jvmdir}/%{jredir}/lib/security/nss.cfg %{_jvmdir}/%{jredir}/lib/audio/ %ifarch %{jit_arches} +%ifnarch %{ppc64} %attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/server/classes.jsa %attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/client/classes.jsa %endif +%endif %{_jvmdir}/%{jredir}/lib/%{archinstall}/server/ %{_jvmdir}/%{jredir}/lib/%{archinstall}/client/ @@ -1330,6 +1361,62 @@ exit 0 %{_jvmdir}/%{jredir}/lib/accessibility.properties %changelog +* Wed Mar 18 2015 Andrew Hughes - 1:1.8.0.31-7.b13 +- Set archinstall to ppc64le on that platform. +- Resolves: rhbz#1194378 + +* Wed Mar 04 2015 Andrew Hughes - 1:1.8.0.31-6.b13 +- Adjust ppc64le HotSpot patch for OpenJDK 8. +- Enable AArch64 configure/JDK patch on all archs to minimise patching issues. +- Adjust ppc64le patches to apply after the enableAArch64 patch. +- Add %%{name} prefix to patches to avoid conflicts with OpenJDK 7 versions. +- Resolves: rhbz#1194378 + +* Tue Mar 03 2015 Andrew Hughes - 1:1.8.0.31-5.b13 +- Provide AArch64 version of RH1191652 HotSpot patch. +- Resolves: rhbz#1194378 + +* Wed Feb 18 2015 Andrew Hughes - 1:1.8.0.31-4.b13 +- Actually add test case Java file. +- Resolves: rhbz#1194378 + +* Wed Feb 18 2015 Andrew Hughes - 1:1.8.0.31-4.b13 +- Override ppc64le as ppc64 only in hotspot-spec.gmk so as not to disrupt JDK build. +- Add property test case from java-1.7.0-openjdk build. +- Resolves: rhbz#1194378 + +* Wed Feb 18 2015 Andrew Hughes - 1:1.8.0.31-4.b13 +- Set OPENJDK_TARGET_CPU_LEGACY to ppc64 so as not to mess up HotSpot build. +- Add -DABI_ELFv2 to CFLAGS on ppc64le to match OpenJDK 7. +- Print contents of hotspot-spec.gmk +- Resolves: rhbz#1194378 + +* Wed Feb 18 2015 Andrew Hughes - 1:1.8.0.31-4.b13 +- Fix path to spec.gmk. +- Resolves: rhbz#1194378 + +* Tue Feb 17 2015 Andrew Hughes - 1:1.8.0.31-4.b13 +- Print contents of spec.gmk to see what is being passed to the HotSpot build. +- Resolves: rhbz#1194378 + +* Tue Feb 17 2015 Andrew Hughes - 1:1.8.0.31-4.b13 +- Remove patch to generated-configure.sh as RPM re-generates it. +- Resolves: rhbz#1194378 + +* Tue Feb 17 2015 Andrew Hughes - 1:1.8.0.31-4.b13 +- Fix configure script to use ppc64le, not ppc64. +- Add ppc64le support to LIBJSOUND_CFLAGS. +- Add a jvm.cfg for ppc64le +- Resolves: rhbz#1194378 + +* Tue Feb 17 2015 Andrew Hughes - 1:1.8.0.31-4.b13 +- Report ppc64le as the architecture on ppc64le, not ppc64. +- Resolves: rhbz#1194378 + +* Tue Jan 27 2015 Andrew Hughes - 1:1.8.0.31-3.b13 +- Depend on java-1.7.0-openjdk to build instead. +- Resolves: rhbz#1194378 + * Fri Jan 16 2015 Severin Gehwolf - 1:1.8.0.31-2.b13 - Replace unmodified java.security file via headless post scriptlet. - Resolves: RHBZ#1180301