From 9e49de38fb0abe1831aa1e6471c4cf98d6f755c0 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 14 2015 20:08:16 +0000 Subject: import java-1.8.0-openjdk-1.8.0.45-30.b13.el7_1 --- diff --git a/.gitignore b/.gitignore index ddd110d..512e683 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -SOURCES/jdk8-jdk8u40-b12-aarch64-hs3135441ed942.tar.xz -SOURCES/jdk8u-jdk8u31-b13.tar.xz +SOURCES/jdk8-jdk8u45-b13-aarch64-jdk8u45-b13.tar.xz +SOURCES/jdk8u45-jdk8u45-b13.tar.xz SOURCES/systemtap-tapset.tar.gz diff --git a/.java-1.8.0-openjdk.metadata b/.java-1.8.0-openjdk.metadata index 6024def..115dd14 100644 --- a/.java-1.8.0-openjdk.metadata +++ b/.java-1.8.0-openjdk.metadata @@ -1,3 +1,3 @@ -28f04427f17147891ac739eb13bd030ccce134d4 SOURCES/jdk8-jdk8u40-b12-aarch64-hs3135441ed942.tar.xz -28aac5785e2088c7071b44728ebe11427d15720b SOURCES/jdk8u-jdk8u31-b13.tar.xz +1f44e78df64b2f8722cf1bf5e3cde65bdd980be9 SOURCES/jdk8-jdk8u45-b13-aarch64-jdk8u45-b13.tar.xz +b1d05ac6c92fb2ac2a5bb9077f645393e1124799 SOURCES/jdk8u45-jdk8u45-b13.tar.xz 8dd5345808d840741a9619becc84302f44b54e78 SOURCES/systemtap-tapset.tar.gz diff --git a/SOURCES/1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch b/SOURCES/1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch new file mode 100644 index 0000000..ab6c3b6 --- /dev/null +++ b/SOURCES/1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch @@ -0,0 +1,148 @@ + +# HG changeset patch +# User neugens +# Date 1421686672 -3600 +# Node ID 868404fc8be0163f50c242f473ecfbe4eccfe519 +# Parent 36c8318010acb190176744eb0a67a321ae23e711 +8067364: Printing to Postscript doesn't support dieresis +Summary: Fix regression caused by fix for 8023990 +Reviewed-by: bae, prr +Contributed-by: neugens@redhat.com, philip.race@oracle.com + +diff -r 36c8318010ac -r 868404fc8be0 src/solaris/classes/sun/font/FcFontConfiguration.java +--- jdk8/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java Tue Dec 16 19:46:22 2014 +0000 ++++ jdk8/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java Mon Jan 19 17:57:52 2015 +0100 +@@ -180,7 +180,7 @@ + String[] componentFaceNames = cfi[idx].getComponentFaceNames(); + FontDescriptor[] ret = new FontDescriptor[componentFaceNames.length]; + for (int i = 0; i < componentFaceNames.length; i++) { +- ret[i] = new FontDescriptor(componentFaceNames[i], StandardCharsets.UTF_8.newEncoder(), new int[0]); ++ ret[i] = new FontDescriptor(componentFaceNames[i], StandardCharsets.ISO_8859_1.newEncoder(), new int[0]); + } + + return ret; +diff -r 36c8318010ac -r 868404fc8be0 test/javax/print/PrintSEUmlauts/PrintSEUmlauts.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ jdk8/jdk/test/javax/print/PrintSEUmlauts/PrintSEUmlauts.java Mon Jan 19 17:57:52 2015 +0100 +@@ -0,0 +1,120 @@ ++/* ++ * Copyright (c) 2014, 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. ++ */ ++import java.awt.Graphics; ++import java.awt.GraphicsEnvironment; ++import java.awt.print.PageFormat; ++import java.awt.print.Printable; ++import java.io.File; ++import java.io.FileInputStream; ++import java.io.FileOutputStream; ++import java.io.IOException; ++import java.nio.charset.StandardCharsets; ++import javax.print.DocFlavor; ++import javax.print.DocPrintJob; ++import javax.print.SimpleDoc; ++import javax.print.StreamPrintService; ++import javax.print.StreamPrintServiceFactory; ++import javax.print.attribute.HashDocAttributeSet; ++import javax.print.attribute.HashPrintRequestAttributeSet; ++import javax.print.event.PrintJobAdapter; ++import javax.print.event.PrintJobEvent; ++ ++/* ++ * @test ++ * @bug 8067364 ++ * @summary Printing to Postscript doesn't support dieresis ++ * @build PrintSEUmlauts ++ * @run main/othervm PrintSEUmlauts ++ */ ++public class PrintSEUmlauts implements Printable { ++ ++ public static void main(String[] args) throws Exception { ++ ++ GraphicsEnvironment.getLocalGraphicsEnvironment(); ++ ++ DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE; ++ String mime = DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType(); ++ ++ StreamPrintServiceFactory[] factories = ++ StreamPrintServiceFactory. ++ lookupStreamPrintServiceFactories(flavor, mime); ++ if (factories.length == 0) { ++ System.out.println("No print service found."); ++ return; ++ } ++ ++ FileOutputStream output = new FileOutputStream("out.ps"); ++ StreamPrintService service = factories[0].getPrintService(output); ++ ++ SimpleDoc doc = ++ new SimpleDoc(new PrintSEUmlauts(), ++ DocFlavor.SERVICE_FORMATTED.PRINTABLE, ++ new HashDocAttributeSet()); ++ DocPrintJob job = service.createPrintJob(); ++ job.addPrintJobListener(new PrintJobAdapter() { ++ @Override ++ public void printJobCompleted(PrintJobEvent pje) { ++ testPrintAndExit(); ++ } ++ }); ++ ++ job.print(doc, new HashPrintRequestAttributeSet()); ++ } ++ ++ private static final boolean DEBUG = false; ++ private static void testPrintAndExit() { ++ String expected = " 7.44 100.0 100.0 S"; ++ String content = ""; ++ ++ File file = new File("out.ps"); ++ if (!DEBUG) { ++ file.deleteOnExit(); ++ } ++ ++ try (FileInputStream stream = new FileInputStream(file)) { ++ byte[] data = new byte[(int) file.length()]; ++ stream.read(data); ++ content = new String(data, StandardCharsets.ISO_8859_1); ++ } catch (IOException ex) { ++ ex.printStackTrace(); ++ } ++ ++ if (!content.contains(expected)) { ++ System.err.println("FAIL"); ++ if (DEBUG) { ++ System.err.println("printing content"); ++ System.err.println(content); ++ } ++ throw new RuntimeException("Expected to represent 'ä' but not found!"); ++ } ++ System.err.println("SUCCESS"); ++ } ++ ++ public int print(Graphics g, PageFormat pf, int pg) { ++ if (pg > 0) return NO_SUCH_PAGE; ++ g.drawString("ä", 100, 100); ++ return PAGE_EXISTS; ++ } ++} + diff --git a/SOURCES/1182694_javaApplicationMenuMisbehave.patch b/SOURCES/1182694_javaApplicationMenuMisbehave.patch new file mode 100644 index 0000000..55da997 --- /dev/null +++ b/SOURCES/1182694_javaApplicationMenuMisbehave.patch @@ -0,0 +1,232 @@ +changeset: 10519:e1ca700aaa1f +tag: tip +user: neugens +date: Fri Feb 27 15:50:03 2015 +0100 +summary: 8071705: Java application menu misbehaves when running multiple screen stacked vertically + +diff --git jdk8/jdk/src/share/classes/javax/swing/JMenu.java jdk8/jdk/src/share/classes/javax/swing/JMenu.java +--- jdk8/jdk/src/share/classes/javax/swing/JMenu.java ++++ jdk8/jdk/src/share/classes/javax/swing/JMenu.java +@@ -475,7 +475,8 @@ + } + // Then the y: + y = s.height + yOffset; // Prefer dropping down +- if (position.y + y + pmSize.height >= screenBounds.height && ++ if (position.y + y + pmSize.height >= screenBounds.height ++ + screenBounds.y && + // popup doesn't fit - place it wherever there's more room + screenBounds.height - s.height < 2*(position.y + - screenBounds.y)) { +diff --git jdk8/jdk/test/javax/swing/JMenu/8071705/bug8071705.java jdk8/jdk/test/javax/swing/JMenu/8071705/bug8071705.java +new file mode 100644 +--- /dev/null ++++ jdk8/jdk/test/javax/swing/JMenu/8071705/bug8071705.java +@@ -0,0 +1,207 @@ ++/* ++ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * 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. ++ */ ++ ++/* ++ * @test ++ * @bug 8071705 ++ * @summary Java application menu misbehaves when running multiple screen stacked vertically ++ * @build bug8071705 ++ * @run main/othervm bug8071705 ++ */ ++ ++import java.awt.Dimension; ++import java.awt.GraphicsConfiguration; ++import java.awt.GraphicsDevice; ++import java.awt.GraphicsEnvironment; ++import java.awt.Point; ++import java.awt.Rectangle; ++import java.awt.Toolkit; ++import java.awt.event.ComponentAdapter; ++import java.awt.event.ComponentEvent; ++import java.awt.event.KeyEvent; ++import java.util.concurrent.CountDownLatch; ++ ++import javax.swing.JFrame; ++import javax.swing.JMenu; ++import javax.swing.JMenuBar; ++import javax.swing.JMenuItem; ++import javax.swing.JPopupMenu; ++import javax.swing.SwingUtilities; ++import javax.swing.UIManager; ++ ++public class bug8071705 { ++ ++ public static void main(String[] args) throws Exception { ++ ++ final CountDownLatch latch = new CountDownLatch(1); ++ final boolean [] result = new boolean[1]; ++ ++ SwingUtilities.invokeLater(new Runnable() { ++ @Override ++ public void run() { ++ JFrame frame = createGUI(); ++ GraphicsDevice[] devices = checkScreens(); ++ ++ // check if we have more than one and if they are stacked ++ // vertically ++ GraphicsDevice device = checkConfigs(devices); ++ if (device == null) { ++ // just pass the test ++ frame.dispose(); ++ result[0] = true; ++ latch.countDown(); ++ } else { ++ FrameListener listener = ++ new FrameListener(device, latch, result); ++ frame.addComponentListener(listener); ++ frame.setVisible(true); ++ } ++ } ++ }); ++ ++ latch.await(); ++ ++ if (result[0] == false) { ++ throw new RuntimeException("popup menu rendered in wrong position"); ++ } ++ ++ System.out.println("OK"); ++ } ++ ++ private static GraphicsDevice[] checkScreens() { ++ GraphicsEnvironment ge = ++ GraphicsEnvironment.getLocalGraphicsEnvironment(); ++ return ge.getScreenDevices(); ++ } ++ ++ private static JFrame createGUI() { ++ JMenuBar menuBar = new JMenuBar(); ++ JMenu menu = new JMenu("Some menu"); ++ menuBar.add(menu); ++ ++ for (int i = 0; i < 10; i++) { ++ menu.add(new JMenuItem("Some menu #" + i)); ++ } ++ ++ JFrame frame = new JFrame(); ++ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ++ frame.setMinimumSize(new Dimension(200, 200)); ++ frame.setJMenuBar(menuBar); ++ return frame; ++ } ++ ++ private static GraphicsDevice checkConfigs(GraphicsDevice[] devices) { ++ ++ GraphicsDevice correctDevice = null; ++ if (devices.length < 2) { ++ return correctDevice; ++ } ++ ++ Toolkit toolkit = Toolkit.getDefaultToolkit(); ++ Rectangle screenBounds = new Rectangle(toolkit.getScreenSize()); ++ int halfScreen = screenBounds.height/2; ++ ++ for(int i = 0; i < devices.length; i++) { ++ if(devices[i].getType() == GraphicsDevice.TYPE_RASTER_SCREEN) { ++ GraphicsConfiguration conf = ++ devices[i].getDefaultConfiguration(); ++ Rectangle bounds = conf.getBounds(); ++ if (bounds.y >= halfScreen) { ++ // found ++ correctDevice = devices[i]; ++ break; ++ } ++ } ++ } ++ return correctDevice; ++ } ++ ++ private static class FrameListener extends ComponentAdapter { ++ ++ private GraphicsDevice device; ++ private CountDownLatch latch; ++ private boolean [] result; ++ public FrameListener(GraphicsDevice device, ++ CountDownLatch latch, ++ boolean [] result) ++ { ++ this.device = device; ++ this.latch = latch; ++ this.result = result; ++ } ++ ++ @Override ++ public void componentShown(ComponentEvent e) { ++ JFrame frame = (JFrame) e.getComponent(); ++ ++ runActualTest(device, latch, frame, result); ++ ++ frame.setVisible(false); ++ frame.dispose(); ++ latch.countDown(); ++ } ++ } ++ ++ private static Rectangle setLocation(JFrame frame, GraphicsDevice device) { ++ GraphicsConfiguration conf = device.getDefaultConfiguration(); ++ Rectangle bounds = conf.getBounds(); ++ ++ // put just below half screen ++ int x = bounds.x + bounds.width/2; ++ int y = bounds.y + bounds.height/2; ++ frame.setLocation(x, y); ++ ++ return bounds; ++ } ++ ++ private static void runActualTest(GraphicsDevice device, ++ CountDownLatch latch, ++ JFrame frame, ++ boolean [] result) ++ { ++ Rectangle screenBounds = setLocation(frame, device); ++ JMenu menu = frame.getJMenuBar().getMenu(0); ++ menu.doClick(); ++ ++ Point location = menu.getLocationOnScreen(); ++ JPopupMenu pm = menu.getPopupMenu(); ++ Dimension pmSize = pm.getSize(); ++ ++ int yOffset = UIManager.getInt("Menu.submenuPopupOffsetY"); ++ int height = location.y + yOffset + pmSize.height + menu.getHeight(); ++ int available = screenBounds.y + screenBounds.height - height; ++ if (available > 0) { ++ Point origin = pm.getLocationOnScreen(); ++ if (origin.y < location.y) { ++ // growing upward, wrong! ++ result[0] = false; ++ } else { ++ // growing downward, ok! ++ result[0] = true; ++ } ++ } else { ++ // there is no space, growing upward would be ok, so we pass ++ result[0] = true; ++ } ++ } ++} + diff --git a/SOURCES/RH1187252.java b/SOURCES/RH1187252.java deleted file mode 100644 index 79a5596..0000000 --- a/SOURCES/RH1187252.java +++ /dev/null @@ -1,15 +0,0 @@ -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 385d542..a62d224 100644 --- a/SOURCES/enableArm64.patch +++ b/SOURCES/enableArm64.patch @@ -65,17 +65,18 @@ esac --- jdk8/common/autoconf/jdk-options.m4 +++ jdk8/common/autoconf/jdk-options.m4 -@@ -119,7 +119,9 @@ +@@ -117,11 +117,6 @@ + JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` + JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` - if test "x$JVM_VARIANT_CLIENT" = xtrue; then - if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then +- 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.]) -+ 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 +- 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/hotspot-build-j-directive.patch b/SOURCES/hotspot-build-j-directive.patch deleted file mode 100644 index 0ab9d60..0000000 --- a/SOURCES/hotspot-build-j-directive.patch +++ /dev/null @@ -1,19 +0,0 @@ -# HG changeset patch -# User andrew -# Date 1398183426 -3600 -# Node ID b4ea3a87f707e674a144e805084bda0f72ad4e38 -# Parent 00aa9f5a26b9e2c7bdca547201106f76e23a8c01 -Don't substitute 'j' for '-j' inside -I directives - ---- jdk8/hotspot/make/linux/makefiles/adjust-mflags.sh Tue Apr 22 17:15:43 2014 +0100 -+++ jdk8/hotspot/make/linux/makefiles/adjust-mflags.sh Tue Apr 22 17:17:06 2014 +0100 -@@ -64,7 +64,7 @@ - echo "$MFLAGS" \ - | sed ' - s/^-/ -/ -- s/ -\([^ ][^ ]*\)j/ -\1 -j/ -+ s/ -\([^ I][^ ]*\)j/ -\1 -j/ - s/ -j[0-9][0-9]*/ -j/ - s/ -j\([^ ]\)/ -j -\1/ - s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/ - diff --git a/SOURCES/java-1.8.0-openjdk-s390-java-opts.patch b/SOURCES/java-1.8.0-openjdk-s390-java-opts.patch index af6063d..9e2b5b8 100644 --- a/SOURCES/java-1.8.0-openjdk-s390-java-opts.patch +++ b/SOURCES/java-1.8.0-openjdk-s390-java-opts.patch @@ -1,19 +1,27 @@ diff -up jdk8/common/autoconf/boot-jdk.m4.s390 jdk8/common/autoconf/boot-jdk.m4 ---- jdk8/common/autoconf/boot-jdk.m4.s390 2014-03-11 16:01:27.000000000 -0400 -+++ jdk8/common/autoconf/boot-jdk.m4 2014-05-21 11:50:36.507890197 -0400 -@@ -315,12 +315,12 @@ - fi +--- jdk8/common/autoconf/boot-jdk.m4.s390 2014-10-28 13:10:36.000000000 -0400 ++++ jdk8/common/autoconf/boot-jdk.m4 2015-01-09 15:49:45.443809100 -0500 +@@ -319,21 +319,12 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_AR + AC_MSG_CHECKING([flags for boot jdk java command for big workloads]) - # Minimum amount of heap memory. -- ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs,[$JAVA]) -+ ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs,[$JAVA]) - if test "x$OPENJDK_TARGET_OS" = "xmacosx" || test "x$OPENJDK_TARGET_CPU" = "xppc64" ; then - # Why does macosx need more heap? Its the huge JDK batch. - ADD_JVM_ARG_IF_OK([-Xmx1600M],boot_jdk_jvmargs,[$JAVA]) - else -- ADD_JVM_ARG_IF_OK([-Xmx1100M],boot_jdk_jvmargs,[$JAVA]) -+ ADD_JVM_ARG_IF_OK([-Xmx768M],boot_jdk_jvmargs,[$JAVA]) - fi - # When is adding -client something that speeds up the JVM? - # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA]) - + # 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]) diff --git a/SOURCES/java-1.8.0-openjdk-size_t.patch b/SOURCES/java-1.8.0-openjdk-size_t.patch index 9ca29a9..eb6aea5 100644 --- a/SOURCES/java-1.8.0-openjdk-size_t.patch +++ b/SOURCES/java-1.8.0-openjdk-size_t.patch @@ -1,7 +1,7 @@ -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2014-09-04 22:47:14.059845388 -0400 -@@ -2686,7 +2686,7 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2015-03-23 12:58:50.138672164 +0100 +@@ -2659,7 +2659,7 @@ void CFLS_LAB::get_from_global_pool(size if (ResizeOldPLAB && CMSOldPLABResizeQuicker) { size_t multiple = _num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks); n_blks += CMSOldPLABReactivityFactor*multiple*n_blks; @@ -10,10 +10,10 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compac } assert(n_blks > 0, "Error"); _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl); -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-09-04 22:47:14.061845394 -0400 -@@ -950,7 +950,7 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2015-03-23 12:58:50.141672172 +0100 +@@ -957,7 +957,7 @@ void ConcurrentMarkSweepGeneration::comp 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"); @@ -22,7 +22,7 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concur if (PrintGCDetails && Verbose) { size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); gclog_or_tty->print_cr("\nFrom compute_new_size: "); -@@ -6559,7 +6559,7 @@ +@@ -6575,7 +6575,7 @@ void CMSCollector::reset(bool asynch) { HeapWord* curAddr = _markBitMap.startWord(); while (curAddr < _markBitMap.endWord()) { size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr); @@ -31,7 +31,7 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concur _markBitMap.clear_large_range(chunk); if (ConcurrentMarkSweepThread::should_yield() && !foregroundGCIsActive() && -@@ -6858,7 +6858,7 @@ +@@ -6874,7 +6874,7 @@ void CMSMarkStack::expand() { return; } // Double capacity if possible @@ -40,10 +40,10 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concur // 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( -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2014-09-04 22:47:14.063845410 -0400 -@@ -3767,7 +3767,7 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2015-03-23 12:58:50.143672177 +0100 +@@ -3902,7 +3902,7 @@ void CMTask::drain_local_queue(bool part // of things to do) or totally (at the very end). size_t target_size; if (partially) { @@ -52,7 +52,7 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp jdk8 } else { target_size = 0; } -@@ -4605,7 +4605,7 @@ +@@ -4728,7 +4728,7 @@ size_t G1PrintRegionLivenessInfoClosure: // The > 0 check is to deal with the prev and next live bytes which // could be 0. if (*hum_bytes > 0) { @@ -61,10 +61,10 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp jdk8 *hum_bytes -= bytes; } return bytes; -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-09-04 22:47:14.065845427 -0400 -@@ -1730,7 +1730,7 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2015-03-23 12:58:50.144672180 +0100 +@@ -1738,7 +1738,7 @@ HeapWord* G1CollectedHeap::expand_and_al verify_region_sets_optional(); @@ -73,34 +73,58 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp jdk ergo_verbose1(ErgoHeapSizing, "attempt heap expansion", ergo_format_reason("allocation request failed") -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2014-09-04 22:47:14.065845427 -0400 -@@ -160,7 +160,7 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2015-03-23 12:58:50.145672183 +0100 +@@ -38,7 +38,7 @@ G1StringDedupQueue::G1StringDedupQueue() + _cancel(false), + _empty(true), + _dropped(0) { +- _nqueues = MAX2(ParallelGCThreads, (size_t)1); ++ _nqueues = MAX2(ParallelGCThreads, (uintx)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); +diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2015-03-23 12:58:50.145672183 +0100 +@@ -110,7 +110,7 @@ public: + }; + + G1StringDedupEntryCache::G1StringDedupEntryCache() { +- _nlists = MAX2(ParallelGCThreads, (size_t)1); ++ _nlists = MAX2(ParallelGCThreads, (uintx)1); + _lists = PaddedArray::create_unfreeable((uint)_nlists); + } + +diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2015-03-23 12:58:50.146672185 +0100 +@@ -147,7 +147,7 @@ void HeapRegion::setup_heap_region_size( if (FLAG_IS_DEFAULT(G1HeapRegionSize)) { size_t average_heap_size = (initial_heap_size + max_heap_size) / 2; - region_size = MAX2(average_heap_size / TARGET_REGION_NUMBER, -- (uintx) MIN_REGION_SIZE); -+ (size_t) MIN_REGION_SIZE); + region_size = MAX2(average_heap_size / HeapRegionBounds::target_number(), +- (uintx) HeapRegionBounds::min_size()); ++ HeapRegionBounds::min_size()); } int region_size_log = log2_long((jlong) region_size); -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2014-09-04 22:47:14.067845443 -0400 -@@ -71,7 +71,7 @@ - if (_virtual_space != NULL && _virtual_space->expand_by(_reserved_byte_size)) { - _region_start = covered_region.start(); - _region_size = covered_region.word_size(); -- idx_t* map = (idx_t*)_virtual_space->reserved_low_addr(); -+ BitMap::bm_word_t* map = (BitMap::bm_word_t*)_virtual_space->reserved_low_addr(); - _beg_bits.set_map(map); - _beg_bits.set_size(bits / 2); - _end_bits.set_map(map + words / 2); -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-09-04 22:47:14.068845451 -0400 -@@ -910,8 +910,8 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2015-03-23 12:58:50.146672185 +0100 +@@ -833,7 +833,7 @@ OtherRegionsTable::do_cleanup_work(HRRSC + // This can be done by either mutator threads together with the + // concurrent refinement threads or GC threads. + uint HeapRegionRemSet::num_par_rem_sets() { +- return MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), (uint)ParallelGCThreads); ++ return MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), ParallelGCThreads); + } + + HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, +diff -up jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2015-03-23 12:58:50.146672185 +0100 +@@ -910,8 +910,8 @@ void PSParallelCompact::initialize_space void PSParallelCompact::initialize_dead_wood_limiter() { const size_t max = 100; @@ -111,10 +135,10 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParalle _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev); DEBUG_ONLY(_dwl_initialized = true;) _dwl_adjustment = normal_distribution(1.0); -diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-09-04 22:47:14.068845451 -0400 -@@ -194,7 +194,7 @@ +diff -up jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.s390 jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp +--- jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2015-03-23 12:58:50.147672188 +0100 +@@ -194,7 +194,7 @@ bool ParScanThreadState::take_from_overf 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, @@ -123,10 +147,10 @@ diff -ruN jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cp num_overflow_elems); // Transfer the most recent num_take_elems from the overflow // stack to our work queue. -diff -ruN jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp ---- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-09-04 22:55:49.271922585 -0400 -@@ -389,7 +389,7 @@ +diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390 jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp +--- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-03-23 12:58:50.147672188 +0100 +@@ -385,7 +385,7 @@ void TwoGenerationCollectorPolicy::initi 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); @@ -135,7 +159,7 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp jdk8/hotspot/src/ _initial_gen0_size = NewSize; // OldSize is already aligned because above we aligned MaxHeapSize to -@@ -437,7 +437,7 @@ +@@ -433,7 +433,7 @@ void GenCollectorPolicy::initialize_size // yield a size that is too small) and bound it by MaxNewSize above. // Ergonomics plays here by previously calculating the desired // NewSize and MaxNewSize. @@ -144,7 +168,7 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp jdk8/hotspot/src/ } assert(max_new_size > 0, "All paths should set max_new_size"); -@@ -459,23 +459,23 @@ +@@ -455,24 +455,23 @@ void GenCollectorPolicy::initialize_size // lower limit. _min_gen0_size = NewSize; desired_new_size = NewSize; @@ -169,11 +193,12 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp jdk8/hotspot/src/ + _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); - } +- } ++ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize); } assert(_min_gen0_size > 0, "Sanity check"); -@@ -577,7 +577,7 @@ + _initial_gen0_size = desired_new_size; +@@ -573,7 +572,7 @@ void TwoGenerationCollectorPolicy::initi } else { // It's been explicitly set on the command line. Use the // OldSize and then determine the consequences. @@ -182,10 +207,10 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp jdk8/hotspot/src/ _initial_gen1_size = OldSize; // If the user has explicitly set an OldSize that is inconsistent -diff -ruN jdk8/hotspot/src/share/vm/memory/metaspace.cpp jdk8/hotspot/src/share/vm/memory/metaspace.cpp ---- jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2014-09-04 22:47:14.071845475 -0400 -@@ -1431,7 +1431,7 @@ +diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390 jdk8/hotspot/src/share/vm/memory/metaspace.cpp +--- jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2015-03-23 12:58:50.147672188 +0100 +@@ -1455,7 +1455,7 @@ void MetaspaceGC::initialize() { void MetaspaceGC::post_initialize() { // Reset the high-water mark once the VM initialization is done. @@ -194,7 +219,7 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/metaspace.cpp jdk8/hotspot/src/share/ } bool MetaspaceGC::can_expand(size_t word_size, bool is_class) { -@@ -1491,7 +1491,7 @@ +@@ -1515,7 +1515,7 @@ void MetaspaceGC::compute_new_size() { (size_t)MIN2(min_tmp, double(max_uintx)); // Don't shrink less than the initial generation size minimum_desired_capacity = MAX2(minimum_desired_capacity, @@ -203,7 +228,7 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/metaspace.cpp jdk8/hotspot/src/share/ if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr("\nMetaspaceGC::compute_new_size: "); -@@ -1546,7 +1546,7 @@ +@@ -1573,7 +1573,7 @@ void MetaspaceGC::compute_new_size() { 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, @@ -212,7 +237,7 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/metaspace.cpp jdk8/hotspot/src/share/ if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr(" " " maximum_free_percentage: %6.2f" -@@ -3197,7 +3197,7 @@ +@@ -3245,7 +3245,7 @@ void Metaspace::global_initialize() { // 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, @@ -221,10 +246,30 @@ diff -ruN jdk8/hotspot/src/share/vm/memory/metaspace.cpp jdk8/hotspot/src/share/ _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. -diff -ruN jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp ---- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2014-09-04 22:47:14.071845475 -0400 -@@ -48,7 +48,7 @@ +diff -up jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.s390 jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp +--- jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2015-03-23 12:58:50.148672191 +0100 +@@ -238,13 +238,13 @@ size_t ThreadLocalAllocBuffer::initial_d + size_t init_sz = 0; + + if (TLABSize > 0) { +- init_sz = TLABSize / HeapWordSize; ++ init_sz = (size_t)(TLABSize / HeapWordSize); + } else if (global_stats() != NULL) { + // Initial size is a function of the average number of allocating threads. + unsigned nof_threads = global_stats()->allocating_threads_avg(); + +- init_sz = (Universe::heap()->tlab_capacity(myThread()) / HeapWordSize) / +- (nof_threads * target_refills()); ++ init_sz = (size_t)((Universe::heap()->tlab_capacity(myThread()) / HeapWordSize) / ++ (nof_threads * target_refills())); + init_sz = align_object_size(init_sz); + } + init_sz = MIN2(MAX2(init_sz, min_size()), max_size()); +diff -up jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.s390 jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp +--- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2015-03-23 12:58:50.148672191 +0100 +@@ -48,7 +48,7 @@ void ObjArrayKlass::objarray_follow_cont const size_t beg_index = size_t(index); assert(beg_index < len || len == 0, "index too large"); @@ -233,7 +278,7 @@ diff -ruN jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp jdk8/hotspot/s const size_t end_index = beg_index + stride; T* const base = (T*)a->base(); T* const beg = base + beg_index; -@@ -82,7 +82,7 @@ +@@ -82,7 +82,7 @@ void ObjArrayKlass::objarray_follow_cont const size_t beg_index = size_t(index); assert(beg_index < len || len == 0, "index too large"); @@ -242,10 +287,10 @@ diff -ruN jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp jdk8/hotspot/s const size_t end_index = beg_index + stride; T* const base = (T*)a->base(); T* const beg = base + beg_index; -diff -ruN jdk8/hotspot/src/share/vm/runtime/arguments.cpp jdk8/hotspot/src/share/vm/runtime/arguments.cpp ---- jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2014-07-30 06:51:43.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2014-09-04 22:47:14.072845483 -0400 -@@ -1244,7 +1244,7 @@ +diff -up jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390 jdk8/hotspot/src/share/vm/runtime/arguments.cpp +--- jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390 2015-02-04 21:14:39.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2015-03-23 12:58:50.148672191 +0100 +@@ -1277,7 +1277,7 @@ void Arguments::set_cms_and_parnew_gc_fl // 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 @@ -254,7 +299,7 @@ diff -ruN jdk8/hotspot/src/share/vm/runtime/arguments.cpp jdk8/hotspot/src/share } else { FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size); } -@@ -1269,8 +1269,8 @@ +@@ -1302,8 +1302,8 @@ void Arguments::set_cms_and_parnew_gc_fl // Unless explicitly requested otherwise, make young gen // at least min_new, and at most preferred_max_new_size. if (FLAG_IS_DEFAULT(NewSize)) { @@ -265,7 +310,7 @@ diff -ruN jdk8/hotspot/src/share/vm/runtime/arguments.cpp jdk8/hotspot/src/share if (PrintGCDetails && Verbose) { // Too early to use gclog_or_tty tty->print_cr("CMS ergo set NewSize: " SIZE_FORMAT, NewSize); -@@ -1280,7 +1280,7 @@ +@@ -1313,7 +1313,7 @@ void Arguments::set_cms_and_parnew_gc_fl // so it's NewRatio x of NewSize. if (FLAG_IS_DEFAULT(OldSize)) { if (max_heap > NewSize) { @@ -274,34 +319,3 @@ diff -ruN jdk8/hotspot/src/share/vm/runtime/arguments.cpp jdk8/hotspot/src/share if (PrintGCDetails && Verbose) { // Too early to use gclog_or_tty tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize); -@@ -1401,7 +1401,7 @@ - return true; - } - --uintx Arguments::max_heap_for_compressed_oops() { -+size_t Arguments::max_heap_for_compressed_oops() { - // Avoid sign flip. - assert(OopEncodingHeapMax > (uint64_t)os::vm_page_size(), "Unusual page size"); - // We need to fit both the NULL page and the heap into the memory budget, while ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2014-06-12 03:58:35.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2014-06-12 03:58:35.000000000 -0400 -@@ -38,7 +38,7 @@ - _cancel(false), - _empty(true), - _dropped(0) { -- _nqueues = MAX2(ParallelGCThreads, (size_t)1); -+ _nqueues = MAX2(ParallelGCThreads, (uintx)1); - _queues = NEW_C_HEAP_ARRAY(G1StringDedupWorkerQueue, _nqueues, mtGC); - for (size_t i = 0; i < _nqueues; i++) { - new (_queues + i) G1StringDedupWorkerQueue(G1StringDedupWorkerQueue::default_segment_size(), _max_cache_size, _max_size); ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2014-06-12 03:58:35.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2014-06-12 03:58:35.000000000 -0400 -@@ -110,7 +110,7 @@ - }; - - G1StringDedupEntryCache::G1StringDedupEntryCache() { -- _nlists = MAX2(ParallelGCThreads, (size_t)1); -+ _nlists = MAX2(ParallelGCThreads, (uintx)1); - _lists = PaddedArray::create_unfreeable((uint)_nlists); - } - diff --git a/SOURCES/policytool.desktop.in b/SOURCES/policytool.desktop.in index 53362af..d38b42d 100644 --- a/SOURCES/policytool.desktop.in +++ b/SOURCES/policytool.desktop.in @@ -6,5 +6,5 @@ Icon=java-1.8.0 Terminal=false Type=Application StartupWMClass=sun-security-tools-PolicyTool -Categories=Java; +Categories=Settings;Java; Version=1.0 diff --git a/SOURCES/removeSunEcProvider-RH1154143.patch b/SOURCES/removeSunEcProvider-RH1154143.patch index 8b9ced9..9f8802d 100644 --- a/SOURCES/removeSunEcProvider-RH1154143.patch +++ b/SOURCES/removeSunEcProvider-RH1154143.patch @@ -21,3 +21,9 @@ # # Sun Provider SecureRandom seed source. +@@ -504,4 +504,4 @@ + # + # Example: + # jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 +-jdk.tls.disabledAlgorithms=SSLv3 ++jdk.tls.disabledAlgorithms=SSLv3,EC,ECDHE,ECDH diff --git a/SOURCES/repackReproduciblePolycies.sh b/SOURCES/repackReproduciblePolycies.sh new file mode 100644 index 0000000..33a46b8 --- /dev/null +++ b/SOURCES/repackReproduciblePolycies.sh @@ -0,0 +1,34 @@ +#!/bin/sh +# https://bugzilla.redhat.com/show_bug.cgi?id=1142153 +M=META-INF/MANIFEST.MF +#P=/usr/lib/jvm/java/jre/lib/security +P=$1/lib/security +for f in local_policy.jar US_export_policy.jar ; do +ORIG=$P/$f +echo "processing $f ($ORIG)" +if [ ! -f $ORIG ]; then + echo "File not found!" + continue +fi +d=`mktemp -d` +NW=$d/$f + pushd $d + jar xf $ORIG + cat $M +# sed -i "s/Created-By.*/Created-By: 1.7.0/g" $M + sed -i "s/Created-By.*/Created-By: $2/g" $M + cat $M + find . -exec touch -t 201401010000 {} + + zip -rX $f * + popd + echo "replacing $ORIG" + md5sum $ORIG + sha256sum $ORIG + echo "by $NW" + md5sum $NW + sha256sum $NW + cp $NW $ORIG + md5sum $ORIG + sha256sum $ORIG + rm -rfv $d +done diff --git a/SOURCES/rhbz1206656_fix_current_stack_pointer.patch b/SOURCES/rhbz1206656_fix_current_stack_pointer.patch new file mode 100644 index 0000000..dbefaef --- /dev/null +++ b/SOURCES/rhbz1206656_fix_current_stack_pointer.patch @@ -0,0 +1,14 @@ +diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp +--- jdk8/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp ++++ jdk8/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp +@@ -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) { diff --git a/SOURCES/zero-interpreter-fix.patch b/SOURCES/zero-interpreter-fix.patch new file mode 100644 index 0000000..8fdbd90 --- /dev/null +++ b/SOURCES/zero-interpreter-fix.patch @@ -0,0 +1,25 @@ +# HG changeset patch +# User roland +# Date 1418632606 -3600 +# Node ID a733dad6fc1e2572ed227e898da35e0053cbb7c5 +# Parent db035d4ba1bd25ac8803bb2d177cb35681eb6907 +8067231: Zero builds fails after JDK-6898462 +Summary: Interpreter::remove_activation_entry() is not defined for the C++ interpreter +Reviewed-by: roland, coleenp +Contributed-by: Severin Gehwolf + +--- jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Sat Dec 13 01:24:10 2014 +0300 ++++ jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Mon Dec 15 09:36:46 2014 +0100 +@@ -394,7 +394,11 @@ + // during deoptimization so the interpreter needs to skip it when + // the frame is popped. + thread->set_do_not_unlock_if_synchronized(true); ++#ifdef CC_INTERP ++ return (address) -1; ++#else + return Interpreter::remove_activation_entry(); ++#endif + } + + // Need to do this check first since when _do_not_unlock_if_synchronized + diff --git a/SPECS/java-1.8.0-openjdk.spec b/SPECS/java-1.8.0-openjdk.spec index 6be3d8f..76dd0db 100644 --- a/SPECS/java-1.8.0-openjdk.spec +++ b/SPECS/java-1.8.0-openjdk.spec @@ -14,7 +14,7 @@ # Always set this so the nss.cfg file is not broken %global NSS_LIBDIR %(pkg-config --variable=libdir nss) -#fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349 +# fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349 %global _privatelibs libmawt[.]so.* %global __provides_exclude ^(%{_privatelibs})$ %global __requires_exclude ^(%{_privatelibs})$ @@ -84,12 +84,12 @@ # Standard JPackage naming and versioning defines. %global origin openjdk -%global updatever 31 +%global updatever 45 %global buildver b13 -%global aarch64_updatever 40 -%global aarch64_buildver b12 -%global aarch64_changesetid aarch64-hs3135441ed942 -# priority must be 6 digits in total +%global aarch64_updatever 45 +%global aarch64_buildver b13 +%global aarch64_changesetid aarch64-jdk8u45-b13 +# priority must be 7 digits in total %global priority 00000%{updatever} %global javaver 1.8.0 @@ -126,7 +126,7 @@ Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 7.%{buildver}%{?dist} +Release: 30.%{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 @@ -147,7 +147,7 @@ URL: http://openjdk.java.net/ # Source from upstrem OpenJDK8 project. To regenerate, use # ./generate_source_tarball.sh jdk8u jdk8u jdk8u%%{updatever}-%%{buildver} # ./generate_source_tarball.sh aarch64-port jdk8 %%{aarch64_hg_tag} -Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz +Source0: jdk8u45-jdk8u%{updatever}-%{buildver}.tar.xz Source1: jdk8-jdk8u%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}.tar.xz # Custom README for -src subpackage @@ -172,8 +172,7 @@ 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 +Source20: repackReproduciblePolycies.sh # New versions of config files with aarch64 support. This is not upstream yet. Source100: config.guess @@ -193,7 +192,6 @@ Patch5: multiple-pkcs11-library-init.patch # Include all sources in src.zip Patch7: include-all-srcs.patch # Problem discovered with make 4.0 -Patch11: hotspot-build-j-directive.patch Patch12: removeSunEcProvider-RH1154143.patch # @@ -207,6 +205,7 @@ Patch102: %{name}-size_t.patch Patch201: system-libjpeg.patch Patch202: system-libpng.patch Patch203: system-lcms.patch +Patch204: zero-interpreter-fix.patch Patch300: jstack-pr1845.patch @@ -219,12 +218,18 @@ Patch401: fix_ZERO_ARCHDEF_ppc.patch # Fixed in upstream 9. See upstream bug: # https://bugs.openjdk.java.net/browse/JDK-8067331 Patch402: atomic_linux_zero.inline.hpp.patch +# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656 +Patch403: rhbz1206656_fix_current_stack_pointer.patch + +#both upstreamed, will fly away in u60 +Patch501: 1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch +Patch502: 1182694_javaApplicationMenuMisbehave.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 +Patch600: %{name}-rh1191652-hotspot.patch +Patch601: %{name}-rh1191652-root.patch +Patch602: %{name}-rh1191652-jdk.patch +Patch603: %{name}-rh1191652-hotspot-aarch64.patch Patch9999: enableArm64.patch @@ -280,15 +285,15 @@ OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} # Standard JPackage base provides. -#Provides: jre-%{javaver}-%{origin} = %{epoch}:%{version}-%{release} -#Provides: jre-%{origin} = %{epoch}:%{version}-%{release} -#Provides: jre-%{javaver} = %{epoch}:%{version}-%{release} -#Provides: java-%{javaver} = %{epoch}:%{version}-%{release} -#Provides: jre = %{javaver} -#Provides: java-%{origin} = %{epoch}:%{version}-%{release} -#Provides: java = %{epoch}:%{javaver} +Provides: jre-%{javaver}-%{origin} = %{epoch}:%{version}-%{release} +Provides: jre-%{origin} = %{epoch}:%{version}-%{release} +Provides: jre-%{javaver} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver} = %{epoch}:%{version}-%{release} +Provides: jre = %{javaver} +Provides: java-%{origin} = %{epoch}:%{version}-%{release} +Provides: java = %{epoch}:%{javaver} # Standard JPackage extensions provides. -#Provides: java-fonts = %{epoch}:%{version} +Provides: java-fonts = %{epoch}:%{version} %description The OpenJDK runtime environment. @@ -309,24 +314,24 @@ Requires(post): %{_sbindir}/alternatives Requires(postun): %{_sbindir}/alternatives # Standard JPackage base provides. -#Provides: jre-%{javaver}-%{origin}-headless = %{epoch}:%{version}-%{release} -#Provides: jre-%{origin}-headless = %{epoch}:%{version}-%{release} -#Provides: jre-%{javaver}-headless = %{epoch}:%{version}-%{release} -#Provides: java-%{javaver}-headless = %{epoch}:%{version}-%{release} -#Provides: jre-headless = %{epoch}:%{javaver} -#Provides: java-%{origin}-headless = %{epoch}:%{version}-%{release} -#Provides: java-headless = %{epoch}:%{javaver} +Provides: jre-%{javaver}-%{origin}-headless = %{epoch}:%{version}-%{release} +Provides: jre-%{origin}-headless = %{epoch}:%{version}-%{release} +Provides: jre-%{javaver}-headless = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-headless = %{epoch}:%{version}-%{release} +Provides: jre-headless = %{epoch}:%{javaver} +Provides: java-%{origin}-headless = %{epoch}:%{version}-%{release} +Provides: java-headless = %{epoch}:%{javaver} # Standard JPackage extensions provides. -#Provides: jndi = %{epoch}:%{version} -#Provides: jndi-ldap = %{epoch}:%{version} -#Provides: jndi-cos = %{epoch}:%{version} -#Provides: jndi-rmi = %{epoch}:%{version} -#Provides: jndi-dns = %{epoch}:%{version} -#Provides: jaas = %{epoch}:%{version} -#Provides: jsse = %{epoch}:%{version} -#Provides: jce = %{epoch}:%{version} -#Provides: jdbc-stdext = 4.1 -#Provides: java-sasl = %{epoch}:%{version} +Provides: jndi = %{epoch}:%{version} +Provides: jndi-ldap = %{epoch}:%{version} +Provides: jndi-cos = %{epoch}:%{version} +Provides: jndi-rmi = %{epoch}:%{version} +Provides: jndi-dns = %{epoch}:%{version} +Provides: jaas = %{epoch}:%{version} +Provides: jsse = %{epoch}:%{version} +Provides: jce = %{epoch}:%{version} +Provides: jdbc-stdext = 4.1 +Provides: java-sasl = %{epoch}:%{version} %description headless The OpenJDK runtime environment without audio and video support. @@ -352,6 +357,7 @@ Requires(postun): %{_sbindir}/alternatives #Provides: java-devel-%{origin} = %{epoch}:%{version} #Provides: java-devel = %{epoch}:%{javaver} + %description devel The OpenJDK development tools. @@ -387,8 +393,8 @@ Requires(post): %{_sbindir}/alternatives Requires(postun): %{_sbindir}/alternatives # Standard JPackage javadoc provides. -#Provides: java-javadoc = %{epoch}:%{version}-%{release} -#Provides: java-%{javaver}-javadoc = %{epoch}:%{version}-%{release} +Provides: java-javadoc = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-javadoc = %{epoch}:%{version}-%{release} %description javadoc The OpenJDK API documentation. @@ -412,6 +418,12 @@ need to. %prep %setup -q -c -n %{uniquesuffix} -T -a 0 +# https://bugzilla.redhat.com/show_bug.cgi?id=1189084 +prioritylength=`expr length %{priority}` +if [ $prioritylength -ne 7 ] ; then + echo "priority must be 7 digits in total, violated" + exit 14 +fi ln -s jdk8 openjdk %ifarch %{aarch64} pushd jdk8 @@ -439,13 +451,15 @@ sh %{SOURCE12} %patch201 %patch202 %patch203 +%ifnarch %{aarch64} +%patch204 +%endif %patch1 %patch3 %patch4 %patch5 %patch7 -%patch11 %patch12 # s390 build fixes @@ -459,16 +473,17 @@ sh %{SOURCE12} %patch400 %patch401 %patch402 +%patch403 # HotSpot ppc64le patch is different depending # on whether we are using 2.5 or 2.6 HotSpot. %ifarch %{aarch64} -%patch503 +%patch603 %else -%patch500 +%patch600 %endif -%patch501 -%patch502 +%patch601 +%patch602 # Extract systemtap tapsets %if %{with_systemtap} @@ -477,6 +492,9 @@ tar xzf %{SOURCE8} %patch300 +%patch501 +%patch502 + for file in tapset/*.in; do OUTPUT_FILE=`echo $file | sed -e s:%{javaver}\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g` @@ -491,7 +509,7 @@ for file in tapset/*.in; do sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE done - +# systemtap tapsets ends %endif # Prepare desktop files @@ -570,6 +588,7 @@ cat hotspot-spec.gmk make \ DEBUG_BINARIES=true \ + JAVAC_FLAGS=-g \ STRIP_POLICY=no_strip \ POST_STRIP_CMD="" \ LOG=trace \ @@ -601,10 +620,6 @@ 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 @@ -822,6 +837,8 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \ echo "" >> accessibility.properties popd +bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix} %{javaver} + %pretrans headless -p -- see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue @@ -1361,6 +1378,30 @@ exit 0 %{_jvmdir}/%{jredir}/lib/accessibility.properties %changelog +* Fri Apr 10 2015 Jiri Vanek - 1:1.8.0.45-30.b13 +- repacked sources +- Resolves: RHBZ#1209076 + +* Wed Apr 08 2015 Andrew Hughes - 1:1.8.0.45-7.b13 +- Re-add %%{name} prefix to patches to avoid conflicts with OpenJDK 7 versions. +- Remove ppc64le test case now fix has been verified. +- Resolves: rhbz#1194378 + +* Tue Apr 07 2015 Jiri Vanek - 1:1.8.0.45-27.b13 +- updated to security u45 +- minor sync with 7.2 + - generate_source_tarball.sh + - adapted java-1.8.0-openjdk-s390-java-opts.patch and java-1.8.0-openjdk-size_t.patch + - reworked (synced) zero patches (removed 103,11 added 204, 400-403) + - family of 5XX patches renamed to 6XX + - added upstreamed patch 501 and 505 + - included removeSunEcProvider-RH1154143.patch +- returned java (jre only) provides +- repacked policies (source20) +- removed duplicated NVR provides +- added automated test for priority (length7) +- Resolves: RHBZ#1209076 + * Wed Mar 18 2015 Andrew Hughes - 1:1.8.0.31-7.b13 - Set archinstall to ppc64le on that platform. - Resolves: rhbz#1194378