diff --git a/.gitignore b/.gitignore index fb9fcf0..395f29b 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,5 @@ /aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz /aarch64-port-jdk8u-aarch64-jdk8u92-b14.tar.xz /aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u92-b14.tar.xz +/aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz +/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz diff --git a/6260348-pr3066.patch b/6260348-pr3066.patch new file mode 100644 index 0000000..06be502 --- /dev/null +++ b/6260348-pr3066.patch @@ -0,0 +1,150 @@ +# HG changeset patch +# User ssadetsky +# Date 1467220169 -3600 +# Wed Jun 29 18:09:29 2016 +0100 +# Node ID 9fffaa63c49d93bff70b96af9a86b7635bce44be +# Parent d0462c26152fc8bd5f79db7f1670777e807ef2b3 +6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate +Reviewed-by: alexsch, azvegint + +diff -r d0462c26152f -r 9fffaa63c49d src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java +--- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java Tue Jun 28 19:44:50 2016 +0100 ++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java Wed Jun 29 18:09:29 2016 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2005, 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 +@@ -93,7 +93,9 @@ + */ + static enum Settings { + GTK_FONT_NAME, +- GTK_ICON_SIZES ++ GTK_ICON_SIZES, ++ GTK_CURSOR_BLINK, ++ GTK_CURSOR_BLINK_TIME + } + + /* Custom regions are needed for representing regions that don't exist +diff -r d0462c26152f -r 9fffaa63c49d src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java +--- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Tue Jun 28 19:44:50 2016 +0100 ++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Wed Jun 29 18:09:29 2016 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2002, 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 +@@ -371,7 +371,17 @@ + int vProgWidth = 22 - (progXThickness * 2); + int vProgHeight = 80 - (progYThickness * 2); + +- Integer caretBlinkRate = Integer.valueOf(500); ++ Integer caretBlinkRate; ++ if (Boolean.FALSE.equals(GTKEngine.INSTANCE.getSetting( ++ GTKEngine.Settings.GTK_CURSOR_BLINK))) { ++ caretBlinkRate = Integer.valueOf(0); ++ } else { ++ caretBlinkRate = (Integer) GTKEngine.INSTANCE.getSetting( ++ GTKEngine.Settings.GTK_CURSOR_BLINK_TIME); ++ if (caretBlinkRate == null) { ++ caretBlinkRate = Integer.valueOf(500); ++ } ++ } + Insets zeroInsets = new InsetsUIResource(0, 0, 0, 0); + + Double defaultCaretAspectRatio = new Double(0.025); +diff -r d0462c26152f -r 9fffaa63c49d src/solaris/native/sun/awt/gtk2_interface.c +--- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c Tue Jun 28 19:44:50 2016 +0100 ++++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c Wed Jun 29 18:09:29 2016 +0100 +@@ -1316,9 +1316,6 @@ + { + result = gtk2_widgets[_GTK_COMBO_BOX_TEXT_FIELD_TYPE] = + (*fp_gtk_entry_new)(); +- +- GtkSettings* settings = fp_gtk_widget_get_settings(result); +- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL); + } + result = gtk2_widgets[_GTK_COMBO_BOX_TEXT_FIELD_TYPE]; + break; +@@ -1363,10 +1360,6 @@ + { + gtk2_widgets[_GTK_ENTRY_TYPE] = + (*fp_gtk_entry_new)(); +- +- GtkSettings* settings = +- fp_gtk_widget_get_settings(gtk2_widgets[_GTK_ENTRY_TYPE]); +- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL); + } + result = gtk2_widgets[_GTK_ENTRY_TYPE]; + break; +@@ -1558,9 +1551,6 @@ + { + result = gtk2_widgets[_GTK_SPIN_BUTTON_TYPE] = + (*fp_gtk_spin_button_new)(NULL, 0, 0); +- +- GtkSettings* settings = fp_gtk_widget_get_settings(result); +- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL); + } + result = gtk2_widgets[_GTK_SPIN_BUTTON_TYPE]; + break; +@@ -2510,14 +2500,20 @@ + + return result; + } +-/* ++ + jobject get_integer_property(JNIEnv *env, GtkSettings* settings, const gchar* key) + { +- gint intval = NULL; +- ++ gint intval = NULL; + (*fp_g_object_get)(settings, key, &intval, NULL); + return create_Integer(env, intval); +-}*/ ++} ++ ++jobject get_boolean_property(JNIEnv *env, GtkSettings* settings, const gchar* key) ++{ ++ gint intval = NULL; ++ (*fp_g_object_get)(settings, key, &intval, NULL); ++ return create_Boolean(env, intval); ++} + + jobject gtk2_get_setting(JNIEnv *env, Setting property) + { +@@ -2529,6 +2525,10 @@ + return get_string_property(env, settings, "gtk-font-name"); + case GTK_ICON_SIZES: + return get_string_property(env, settings, "gtk-icon-sizes"); ++ case GTK_CURSOR_BLINK: ++ return get_boolean_property(env, settings, "gtk-cursor-blink"); ++ case GTK_CURSOR_BLINK_TIME: ++ return get_integer_property(env, settings, "gtk-cursor-blink-time"); + } + + return NULL; +diff -r d0462c26152f -r 9fffaa63c49d src/solaris/native/sun/awt/gtk2_interface.h +--- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h Tue Jun 28 19:44:50 2016 +0100 ++++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h Wed Jun 29 18:09:29 2016 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2005, 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 +@@ -140,7 +140,9 @@ + typedef enum _Setting + { + GTK_FONT_NAME, +- GTK_ICON_SIZES ++ GTK_ICON_SIZES, ++ GTK_CURSOR_BLINK, ++ GTK_CURSOR_BLINK_TIME + } Setting; + + /* GTK types, here to eliminate need for GTK headers at compile time */ diff --git a/jdk8-archivedJavadoc.patch b/8154313.patch similarity index 100% rename from jdk8-archivedJavadoc.patch rename to 8154313.patch diff --git a/8158260-pr2991-rh1341258.patch b/8158260-pr2991-rh1341258.patch new file mode 100644 index 0000000..dae9509 --- /dev/null +++ b/8158260-pr2991-rh1341258.patch @@ -0,0 +1,32 @@ +# HG changeset patch +# User simonis +# Date 1466155884 -7200 +# Fri Jun 17 11:31:24 2016 +0200 +# Node ID 74081c30fede694b547c8b3386b9887ff14e8775 +# Parent 3fc29347b27fdd2075e6ec6d80bb26ab2bf667c1 +8158260, PR2991, RH1341258: PPC64: unaligned Unsafe.getInt can lead to the generation of illegal instructions +Summary: Adjust instruction generation. +Reviewed-by: goetz +Contributed-by: gromero@linux.vnet.ibm.com, horii@jp.ibm.com + +diff -r 3fc29347b27f -r 74081c30fede src/cpu/ppc/vm/ppc.ad +--- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad Fri May 20 19:42:15 2016 +0100 ++++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad Fri Jun 17 11:31:24 2016 +0200 +@@ -5461,7 +5461,7 @@ + %} + + // Match loading integer and casting it to long. +-instruct loadI2L(iRegLdst dst, memory mem) %{ ++instruct loadI2L(iRegLdst dst, memoryAlg4 mem) %{ + match(Set dst (ConvI2L (LoadI mem))); + predicate(_kids[0]->_leaf->as_Load()->is_unordered()); + ins_cost(MEMORY_REF_COST); +@@ -5477,7 +5477,7 @@ + %} + + // Match loading integer and casting it to long - acquire. +-instruct loadI2L_ac(iRegLdst dst, memory mem) %{ ++instruct loadI2L_ac(iRegLdst dst, memoryAlg4 mem) %{ + match(Set dst (ConvI2L (LoadI mem))); + ins_cost(3*MEMORY_REF_COST); + diff --git a/8159244-pr3074.patch b/8159244-pr3074.patch new file mode 100644 index 0000000..94ba21b --- /dev/null +++ b/8159244-pr3074.patch @@ -0,0 +1,115 @@ +# HG changeset patch +# User thartmann +# Date 1468206230 -3600 +# Mon Jul 11 04:03:50 2016 +0100 +# Node ID 7c89f7f3f2c57d64970cc2ae3a81d24765830118 +# Parent 4b40867e627dd9043bc67a4795caa9834ef69478 +8159244, PR3074: Partially initialized string object created by C2's string concat optimization may escape +Summary: Emit release barrier after String creation to prevent partially initialized object from escaping. +Reviewed-by: kvn + +diff -r 4b40867e627d -r 7c89f7f3f2c5 src/share/vm/opto/stringopts.cpp +--- openjdk/hotspot/src/share/vm/opto/stringopts.cpp Fri Jun 17 11:31:24 2016 +0200 ++++ openjdk/hotspot/src/share/vm/opto/stringopts.cpp Mon Jul 11 04:03:50 2016 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2009, 2016, 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 +@@ -1640,6 +1640,12 @@ + kit.store_String_length(kit.control(), result, length); + } + kit.store_String_value(kit.control(), result, char_array); ++ ++ // The value field is final. Emit a barrier here to ensure that the effect ++ // of the initialization is committed to memory before any code publishes ++ // a reference to the newly constructed object (see Parse::do_exits()). ++ assert(AllocateNode::Ideal_allocation(result, _gvn) != NULL, "should be newly allocated"); ++ kit.insert_mem_bar(Op_MemBarRelease, result); + } else { + result = C->top(); + } +diff -r 4b40867e627d -r 7c89f7f3f2c5 test/compiler/stringopts/TestStringObjectInitialization.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/hotspot/test/compiler/stringopts/TestStringObjectInitialization.java Mon Jul 11 04:03:50 2016 +0100 +@@ -0,0 +1,78 @@ ++/* ++ * Copyright (c) 2016, 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. ++ */ ++ ++ ++import java.util.Arrays; ++ ++/* ++ * @test ++ * @bug 8159244 ++ * @requires vm.gc == "Parallel" | vm.gc == "null" ++ * @summary Verifies that no partially initialized String object escapes from ++ * C2's String concat optimization in a highly concurrent setting. ++ * This test triggers the bug in about 1 out of 10 runs. ++ * @compile -XDstringConcat=inline TestStringObjectInitialization.java ++ * @run main/othervm/timeout=300 -XX:+IgnoreUnrecognizedVMOptions -XX:-UseCompressedOops -XX:-CompactStrings ++ * -XX:-UseG1GC -XX:+UseParallelGC TestStringObjectInitialization ++ */ ++public class TestStringObjectInitialization { ++ ++ String myString; ++ ++ public static void main(String[] args) throws Exception { ++ TestStringObjectInitialization t = new TestStringObjectInitialization(); ++ // Create some threads that concurrently update 'myString' ++ for (int i = 0; i < 100; ++i) { ++ (new Thread(new Runner(t))).start(); ++ } ++ Thread last = new Thread(new Runner(t)); ++ last.start(); ++ last.join(); ++ } ++ ++ private void add(String message) { ++ // String escapes to other threads here ++ myString += message; ++ } ++ ++ public void run(String s, String[] sArray) { ++ // Trigger C2's string concatenation optimization ++ add(s + Arrays.toString(sArray) + " const "); ++ } ++} ++ ++class Runner implements Runnable { ++ private TestStringObjectInitialization test; ++ ++ public Runner(TestStringObjectInitialization t) { ++ test = t; ++ } ++ ++ public void run(){ ++ String[] array = {"a", "b", "c"}; ++ for (int i = 0; i < 10000; ++i) { ++ test.run("a", array); ++ } ++ } ++} ++ diff --git a/corba_typo_fix.patch b/corba_typo_fix.patch new file mode 100644 index 0000000..9756a8a --- /dev/null +++ b/corba_typo_fix.patch @@ -0,0 +1,24 @@ +diff -r 5c43ac1f2a59 src/share/classes/javax/rmi/CORBA/Util.java +--- openjdk.orig/corba/src/share/classes/javax/rmi/CORBA/Util.java Fri Jul 01 04:11:22 2016 +0100 ++++ openjdk/corba/src/share/classes/javax/rmi/CORBA/Util.java Mon Jul 04 16:04:39 2016 +0100 +@@ -413,8 +413,18 @@ + // check that a serialization permission has been + // set to allow the loading of the Util delegate + // which provides access to custom ValueHandler +- sm.checkPermission(new SerializablePermission( +- "enableCustomValueHanlder")); ++ try { ++ sm.checkPermission(new SerializablePermission( ++ "enableCustomValueHandler")); ++ } catch (SecurityException ex1) { ++ // Fallback: See if the permission is mis-spelt ++ try { ++ sm.checkPermission(new SerializablePermission( ++ "enableCustomValueHanlder")); ++ } catch (SecurityException ex2) { ++ throw ex1; // Throw original exception ++ } ++ } + } + } + } diff --git a/hotspot-8157306.changeset b/hotspot-8157306.changeset new file mode 100644 index 0000000..95f30eb --- /dev/null +++ b/hotspot-8157306.changeset @@ -0,0 +1,55 @@ +# HG changeset patch +# User aph +# Date 1466704739 0 +# Thu Jun 23 17:58:59 2016 +0000 +# Node ID 89b3911c92aef18f2fd24ab4a31fbb47954462fa +# Parent 9febe12cbce4c6aa428a78f6a78906909e2954a4 +8157306: Random infrequent null pointer exceptions in javac +Reviewed-by: kvn + +diff --git openjdk/hotspot/src/share/vm/opto/block.cpp b/src/share/vm/opto/block.cpp +--- openjdk/hotspot/src/share/vm/opto/block.cpp ++++ openjdk/hotspot/src/share/vm/opto/block.cpp +@@ -1212,6 +1212,9 @@ + if (j >= 1 && n->is_Mach() && n->as_Mach()->ideal_Opcode() == Op_CreateEx) { + assert(j == 1 || block->get_node(j-1)->is_Phi(), "CreateEx must be first instruction in block"); + } ++ if (n->needs_anti_dependence_check()) { ++ verify_anti_dependences(block, n); ++ } + for (uint k = 0; k < n->req(); k++) { + Node *def = n->in(k); + if (def && def != n) { +diff --git a/src/share/vm/opto/block.hpp b/src/share/vm/opto/block.hpp +--- openjdk/hotspot/src/share/vm/opto/block.hpp ++++ openjdk/hotspot/src/share/vm/opto/block.hpp +@@ -481,9 +481,9 @@ + MachNode* _goto; + + Block* insert_anti_dependences(Block* LCA, Node* load, bool verify = false); +- void verify_anti_dependences(Block* LCA, Node* load) { ++ void verify_anti_dependences(Block* LCA, Node* load) const { + assert(LCA == get_block_for_node(load), "should already be scheduled"); +- insert_anti_dependences(LCA, load, true); ++ const_cast(this)->insert_anti_dependences(LCA, load, true); + } + + bool move_to_next(Block* bx, uint b_index); +diff --git a/src/share/vm/opto/lcm.cpp b/src/share/vm/opto/lcm.cpp +--- openjdk/hotspot/src/share/vm/opto/lcm.cpp ++++ openjdk/hotspot/src/share/vm/opto/lcm.cpp +@@ -1293,11 +1293,12 @@ + Block *sb = block->_succs[i]; + // Clone the entire area; ignoring the edge fixup for now. + for( uint j = end; j > beg; j-- ) { +- // It is safe here to clone a node with anti_dependence +- // since clones dominate on each path. + Node *clone = block->get_node(j-1)->clone(); + sb->insert_node(clone, 1); + map_node_to_block(clone, sb); ++ if (clone->needs_anti_dependence_check()) { ++ insert_anti_dependences(sb, clone); ++ } + } + } + diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index 7cf1d4d..3f4ea45 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -170,7 +170,7 @@ # note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there. %global project aarch64-port %global repo jdk8u -%global revision aarch64-jdk8u92-b14 +%global revision aarch64-jdk8u101-b14 # eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont forget spec escape % by %%) %global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*}) # eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60 @@ -178,7 +178,7 @@ # eg jdk8u60-b27 -> b27 %global buildver %(VERSION=%{revision}; echo ${VERSION##*-}) # priority must be 7 digits in total. The expression is workarounding tip -%global priority %(TIP=18000%{updatever}; echo ${TIP/tip/99}) +%global priority %(TIP=1800%{updatever}; echo ${TIP/tip/999}) %global javaver 1.8.0 @@ -785,7 +785,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1 Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 5.%{buildver}%{?dist} +Release: 1.%{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 @@ -805,7 +805,7 @@ URL: http://openjdk.java.net/ # aarch64-port now contains integration forest of both aarch64 and normal jdk # Source from upstream OpenJDK8 project. To regenerate, use -# VERSION=aarch64-jdk8u92-b14 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION} +# VERSION=aarch64-jdk8u101-b14 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION} # REPO_ROOT= generate_source_tarball.sh # where the source is obtained from http://hg.openjdk.java.net/%%{project}/%%{repo} Source0: %{project}-%{repo}-%{revision}.tar.xz @@ -841,7 +841,7 @@ Source20: repackReproduciblePolycies.sh Source100: config.guess Source101: config.sub # shenandoah hotpost -Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u92-b14.tar.xz +Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz # RPM/distribution specific patches @@ -878,6 +878,8 @@ Patch508: rh1176206-jdk.patch Patch509: rh1176206-root.patch # RH1337583, PR2974: PKCS#10 certificate requests now use CRLF line endings rather than system line endings Patch523: pr2974-rh1337583.patch +# PR3083, RH1346460: Regression in SSL debug output without an ECC provider +Patch528: pr3083-rh1346460.patch # Arch-specific upstreamable patches # PR2415: JVM -Xmx requirement is too high on s390 @@ -886,8 +888,6 @@ Patch100: %{name}-s390-java-opts.patch Patch102: %{name}-size_t.patch # Use "%z" for size_t on s390 as size_t != intptr_t Patch103: s390-size_t_format_flags.patch -# PR2991, RH1341258: JVM on PPC64 LE crashes due to an illegal instruction in JITed code -Patch524: pr2991-rh1341258.patch # Patches which need backporting to 8u # S8073139, RH1191652; fix name of ppc64le architecture @@ -909,12 +909,20 @@ Patch605: soundFontPatch.patch # S8148351, PR2842: Only display resolved symlink for compiler, do not change path Patch506: pr2842-01.patch Patch507: pr2842-02.patch +# S8158260, PR2991, RH1341258: JVM on PPC64 LE crashes due to an illegal instruction in JITed code +Patch524: 8158260-pr2991-rh1341258.patch +# S8154313: Generated javadoc scattered all over the place +Patch400: 8154313.patch +# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate +Patch526: 6260348-pr3066.patch # Patches upstream and appearing in 8u102 # S8148752, PR2943, RH1330188: Compiled StringBuilder code throws StringIndexOutOfBoundsException Patch519: 8148752-pr2943-rh1330188.patch # S6961123, PR2972, RH1339740: Java application name in GNOME Shell contains funny characters Patch520: 6961123-pr2972-rh1339740.patch +# S8159244, PR3074: Partially initialized string object created by C2's string concat optimization may escape +Patch527: 8159244-pr3074.patch # Patches upstream and appearing in 8u112 # S8044762, PR2960: com/sun/jdi/OptionTest.java test time out @@ -929,10 +937,11 @@ Patch606: 8154210.patch Patch201: system-libjpeg.patch # Local fixes -# see http://mail.openjdk.java.net/pipermail/build-dev/2016-March/016852.html thread -Patch400: jdk8-archivedJavadoc.patch +Patch531: hotspot-8157306.changeset # PR1834, RH1022017: Reduce curves reported by SSL to those in NSS Patch525: pr1834-rh1022017.patch +# Temporary fix for typo in CORBA security patch +Patch529: corba_typo_fix.patch # Non-OpenJDK fixes Patch300: jstack-pr1845.patch @@ -1264,6 +1273,13 @@ sh %{SOURCE12} %patch522 %patch523 %patch525 +%patch526 +%patch527 +%patch528 +%patch529 +%ifarch %{aarch64} +%patch531 +%endif # Extract systemtap tapsets %if %{with_systemtap} @@ -1852,6 +1868,16 @@ require "copy_jdk_configs.lua" %endif %changelog +* Mon Jul 25 2016 jvanek - 1:1.8.0.101-1.b14 +- updated to aarch64-jdk8u101-b14 (from aarch64-port/jdk8u) +- updated to aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25 (from aarch64-port/jdk8u-shenandoah) of hotspot +- used aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz as new sources +- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz as new sources for hotspot +- priority lowered for ine zero digit, tip moved to 999 +- added 6260348-pr3066.patch, pr3083-rh1346460.patch, 8159244-pr3074.patch, corba_typo_fix.patch +renamed: jdk8-archivedJavadoc.patch -> 8154313.patch, pr2991-rh1341258.patch -> 8158260-pr2991-rh1341258.patch +- not added 8147771-additional_hunk.patch, already in b14 + * Tue Jul 12 2016 Jiri Vanek - 1:1.8.0.92-5.b14 - added Provides: /usr/bin/jjs diff --git a/pr2991-rh1341258.patch b/pr2991-rh1341258.patch deleted file mode 100644 index f13b388..0000000 --- a/pr2991-rh1341258.patch +++ /dev/null @@ -1,248 +0,0 @@ -diff -r 3fc29347b27f src/cpu/ppc/vm/ppc.ad ---- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad Fri May 20 19:42:15 2016 +0100 -+++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad Thu Jun 02 17:36:55 2016 +0100 -@@ -2516,8 +2516,13 @@ - MacroAssembler _masm(&cbuf); - int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_); - // Operand 'ds' requires 4-alignment. -- assert((Idisp & 0x3) == 0, "unaligned offset"); -- __ ld($dst$$Register, Idisp, $mem$$base$$Register); -+ if (Idisp & 0x3) { -+ __ addi($dst$$Register, $mem$$base$$Register, Idisp); -+ __ ld($dst$$Register, 0, $dst$$Register); -+ } else { -+ __ ld($dst$$Register, Idisp, $mem$$base$$Register); -+ __ nop(); -+ } - %} - - // Load acquire. -@@ -2526,11 +2531,30 @@ - MacroAssembler _masm(&cbuf); - int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_); - // Operand 'ds' requires 4-alignment. -- assert((Idisp & 0x3) == 0, "unaligned offset"); -- __ ld($dst$$Register, Idisp, $mem$$base$$Register); -+ if (Idisp & 0x3) { -+ __ addi($dst$$Register, $mem$$base$$Register, Idisp); -+ __ ld($dst$$Register, 0, $dst$$Register); -+ } else { -+ __ ld($dst$$Register, Idisp, $mem$$base$$Register); -+ __ nop(); -+ } - __ twi_0($dst$$Register); - __ isync(); - %} -+ -+ enc_class enc_lwa(iRegLdst dst, memoryAlg4 mem) %{ -+ // TODO: PPC port $archOpcode(ppc64Opcode_ld); -+ MacroAssembler _masm(&cbuf); -+ int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_); -+ // Operand 'ds' requires 4-alignment. -+ if (Idisp & 0x3) { -+ __ addi($dst$$Register, $mem$$base$$Register, Idisp); -+ __ lwa($dst$$Register, 0, $dst$$Register); -+ } else { -+ __ lwa($dst$$Register, Idisp, $mem$$base$$Register); -+ __ nop(); -+ } -+ %} - - enc_class enc_lfd(RegF dst, memory mem) %{ - // TODO: PPC port $archOpcode(ppc64Opcode_lfd); -@@ -2857,8 +2881,13 @@ - MacroAssembler _masm(&cbuf); - int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_); - // Operand 'ds' requires 4-alignment. -- assert((Idisp & 0x3) == 0, "unaligned offset"); -- __ std($src$$Register, Idisp, $mem$$base$$Register); -+ if (Idisp & 0x3) { -+ __ addi($src$$Register, $mem$$base$$Register, Idisp); -+ __ std($src$$Register, Idisp, $src$$Register); -+ } else { -+ __ std($src$$Register, Idisp, $mem$$base$$Register); -+ __ nop(); -+ } - %} - - enc_class enc_stfs(RegF src, memory mem) %{ -@@ -5467,12 +5496,8 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "LWA $dst, $mem \t// loadI2L" %} -- size(4); -- ins_encode %{ -- // TODO: PPC port $archOpcode(ppc64Opcode_lwa); -- int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_); -- __ lwa($dst$$Register, Idisp, $mem$$base$$Register); -- %} -+ size(8); -+ ins_encode( enc_lwa(dst, mem) ); - ins_pipe(pipe_class_memory); - %} - -@@ -5484,11 +5509,18 @@ - format %{ "LWA $dst, $mem \t// loadI2L acquire" - "TWI $dst\n\t" - "ISYNC" %} -- size(12); -+ size(16); - ins_encode %{ - // TODO: PPC port $archOpcode(ppc64Opcode_lwa); - int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_); -- __ lwa($dst$$Register, Idisp, $mem$$base$$Register); -+ // Operand 'ds' requires 4-alignment. -+ if (Idisp & 0x3) { -+ __ addi($dst$$Register, $mem$$base$$Register, Idisp); -+ __ lwa($dst$$Register, 0, $dst$$Register); -+ } else { -+ __ lwa($dst$$Register, Idisp, $mem$$base$$Register); -+ __ nop(); -+ } - __ twi_0($dst$$Register); - __ isync(); - %} -@@ -5502,7 +5534,7 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "LD $dst, $mem \t// long" %} -- size(4); -+ size(8); - ins_encode( enc_ld(dst, mem) ); - ins_pipe(pipe_class_memory); - %} -@@ -5515,7 +5547,7 @@ - format %{ "LD $dst, $mem \t// long acquire\n\t" - "TWI $dst\n\t" - "ISYNC" %} -- size(12); -+ size(16); - ins_encode( enc_ld_ac(dst, mem) ); - ins_pipe(pipe_class_memory); - %} -@@ -5527,7 +5559,7 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "LD $dst, $mem \t// unaligned long" %} -- size(4); -+ size(8); - ins_encode( enc_ld(dst, mem) ); - ins_pipe(pipe_class_memory); - %} -@@ -5541,7 +5573,7 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "LD $dst, $mem \t// load 8-byte Vector" %} -- size(4); -+ size(8); - ins_encode( enc_ld(dst, mem) ); - ins_pipe(pipe_class_memory); - %} -@@ -5601,7 +5633,7 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "LD $dst, $mem \t// ptr" %} -- size(4); -+ size(8); - ins_encode( enc_ld(dst, mem) ); - ins_pipe(pipe_class_memory); - %} -@@ -5614,7 +5646,7 @@ - format %{ "LD $dst, $mem \t// ptr acquire\n\t" - "TWI $dst\n\t" - "ISYNC" %} -- size(12); -+ size(16); - ins_encode( enc_ld_ac(dst, mem) ); - ins_pipe(pipe_class_memory); - %} -@@ -5626,7 +5658,7 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "LD $dst, $mem \t// ptr + p2x" %} -- size(4); -+ size(8); - ins_encode( enc_ld(dst, mem) ); - ins_pipe(pipe_class_memory); - %} -@@ -5648,7 +5680,7 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "LD $dst, $mem \t// klass ptr" %} -- size(4); -+ size(8); - ins_encode( enc_ld(dst, mem) ); - ins_pipe(pipe_class_memory); - %} -@@ -6521,7 +6553,7 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "STD $src, $mem \t// long" %} -- size(4); -+ size(8); - ins_encode( enc_std(src, mem) ); - ins_pipe(pipe_class_memory); - %} -@@ -6535,7 +6567,7 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "STD $mem, $src \t// packed8B" %} -- size(4); -+ size(8); - ins_encode( enc_std(src, mem) ); - ins_pipe(pipe_class_memory); - %} -@@ -6568,7 +6600,7 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "STD $src, $dst \t// ptr" %} -- size(4); -+ size(8); - ins_encode( enc_std(src, dst) ); - ins_pipe(pipe_class_memory); - %} -@@ -7521,7 +7553,7 @@ - format %{ "LD $dst, $mem \t// loadPLocked\n\t" - "TWI $dst\n\t" - "ISYNC" %} -- size(12); -+ size(16); - ins_encode( enc_ld_ac(dst, mem) ); - ins_pipe(pipe_class_memory); - %} -@@ -9287,7 +9319,7 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "LD $dst, $src \t// long" %} -- size(4); -+ size(8); - ins_encode( enc_ld(dst, src) ); - ins_pipe(pipe_class_memory); - %} -@@ -9298,7 +9330,7 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "STD $src, $dst \t// long" %} -- size(4); -+ size(8); - ins_encode( enc_std(src, dst) ); // rs=rt - ins_pipe(pipe_class_memory); - %} -@@ -9372,7 +9404,7 @@ - instruct moveD2L_stack_reg(iRegLdst dst, stackSlotD src) %{ - match(Set dst (MoveD2L src)); - ins_cost(MEMORY_REF_COST); -- size(4); -+ size(8); - format %{ "LD $dst, $src \t// MoveD2L" %} - ins_encode( enc_ld(dst, src) ); - ins_pipe(pipe_class_memory); -@@ -9407,7 +9439,7 @@ - ins_cost(MEMORY_REF_COST); - - format %{ "STD $src, $dst \t// MoveL2D" %} -- size(4); -+ size(8); - ins_encode( enc_std(src, dst) ); - ins_pipe(pipe_class_memory); - %} diff --git a/pr3083-rh1346460.patch b/pr3083-rh1346460.patch new file mode 100644 index 0000000..d44ed1d --- /dev/null +++ b/pr3083-rh1346460.patch @@ -0,0 +1,152 @@ +# HG changeset patch +# User andrew +# Date 1467652889 -3600 +# Mon Jul 04 18:21:29 2016 +0100 +# Node ID a4541d1d8609cadb08d3e31b40b9184ff32dd6c3 +# Parent bc6eab2038c603afb2eb2b4644f3b900c8fd0c46 +PR3083, RH1346460: Regression in SSL debug output without an ECC provider +Summary: Return null rather than throwing an exception when there's no ECC provider. + +diff -r bc6eab2038c6 -r a4541d1d8609 src/share/classes/sun/security/util/Debug.java +--- openjdk/jdk/src/share/classes/sun/security/util/Debug.java Mon Jul 04 17:08:12 2016 +0100 ++++ openjdk/jdk/src/share/classes/sun/security/util/Debug.java Mon Jul 04 18:21:29 2016 +0100 +@@ -73,6 +73,7 @@ + System.err.println("certpath PKIX CertPathBuilder and"); + System.err.println(" CertPathValidator debugging"); + System.err.println("combiner SubjectDomainCombiner debugging"); ++ System.err.println("ecc Elliptic Curve Cryptography debugging"); + System.err.println("gssloginconfig"); + System.err.println(" GSS LoginConfigImpl debugging"); + System.err.println("configfile JAAS ConfigFile loading"); +diff -r bc6eab2038c6 -r a4541d1d8609 src/share/classes/sun/security/util/ECUtil.java +--- openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java Mon Jul 04 17:08:12 2016 +0100 ++++ openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java Mon Jul 04 18:21:29 2016 +0100 +@@ -41,6 +41,9 @@ + + public class ECUtil { + ++ /* Are we debugging ? */ ++ private static final Debug debug = Debug.getInstance("ecc"); ++ + // Used by SunPKCS11 and SunJSSE. + public static ECPoint decodePoint(byte[] data, EllipticCurve curve) + throws IOException { +@@ -90,6 +93,10 @@ + } + + private static AlgorithmParameters getECParameters(Provider p) { ++ return getECParameters(p, false); ++ } ++ ++ private static AlgorithmParameters getECParameters(Provider p, boolean throwException) { + try { + if (p != null) { + return AlgorithmParameters.getInstance("EC", p); +@@ -97,13 +104,21 @@ + + return AlgorithmParameters.getInstance("EC"); + } catch (NoSuchAlgorithmException nsae) { +- throw new RuntimeException(nsae); ++ if (throwException) { ++ throw new RuntimeException(nsae); ++ } else { ++ // ECC provider is optional so just return null ++ if (debug != null) { ++ debug.println("Provider unavailable: " + nsae); ++ } ++ return null; ++ } + } + } + + public static byte[] encodeECParameterSpec(Provider p, + ECParameterSpec spec) { +- AlgorithmParameters parameters = getECParameters(p); ++ AlgorithmParameters parameters = getECParameters(p, true); + + try { + parameters.init(spec); +@@ -122,11 +137,16 @@ + public static ECParameterSpec getECParameterSpec(Provider p, + ECParameterSpec spec) { + AlgorithmParameters parameters = getECParameters(p); ++ if (parameters == null) ++ return null; + + try { + parameters.init(spec); + return parameters.getParameterSpec(ECParameterSpec.class); + } catch (InvalidParameterSpecException ipse) { ++ if (debug != null) { ++ debug.println("Invalid parameter specification: " + ipse); ++ } + return null; + } + } +@@ -135,34 +155,49 @@ + byte[] params) + throws IOException { + AlgorithmParameters parameters = getECParameters(p); ++ if (parameters == null) ++ return null; + + parameters.init(params); + + try { + return parameters.getParameterSpec(ECParameterSpec.class); + } catch (InvalidParameterSpecException ipse) { ++ if (debug != null) { ++ debug.println("Invalid parameter specification: " + ipse); ++ } + return null; + } + } + + public static ECParameterSpec getECParameterSpec(Provider p, String name) { + AlgorithmParameters parameters = getECParameters(p); ++ if (parameters == null) ++ return null; + + try { + parameters.init(new ECGenParameterSpec(name)); + return parameters.getParameterSpec(ECParameterSpec.class); + } catch (InvalidParameterSpecException ipse) { ++ if (debug != null) { ++ debug.println("Invalid parameter specification: " + ipse); ++ } + return null; + } + } + + public static ECParameterSpec getECParameterSpec(Provider p, int keySize) { + AlgorithmParameters parameters = getECParameters(p); ++ if (parameters == null) ++ return null; + + try { + parameters.init(new ECKeySizeParameterSpec(keySize)); + return parameters.getParameterSpec(ECParameterSpec.class); + } catch (InvalidParameterSpecException ipse) { ++ if (debug != null) { ++ debug.println("Invalid parameter specification: " + ipse); ++ } + return null; + } + +@@ -171,11 +206,16 @@ + public static String getCurveName(Provider p, ECParameterSpec spec) { + ECGenParameterSpec nameSpec; + AlgorithmParameters parameters = getECParameters(p); ++ if (parameters == null) ++ return null; + + try { + parameters.init(spec); + nameSpec = parameters.getParameterSpec(ECGenParameterSpec.class); + } catch (InvalidParameterSpecException ipse) { ++ if (debug != null) { ++ debug.println("Invalid parameter specification: " + ipse); ++ } + return null; + } + diff --git a/sources b/sources index 63c6b5a..17743f3 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ 94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz -aa905556a4feff9164dba5d0616775ff aarch64-port-jdk8u-aarch64-jdk8u92-b14.tar.xz -88891d2571519b45e65abf9ab8402104 aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u92-b14.tar.xz +837e9490d2ffb85644e6b083f8006e7a aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz +40b2e99945101cf8cd6cad5eafc47a82 aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz diff --git a/update_package.sh b/update_package.sh index 149848e..1d29611 100755 --- a/update_package.sh +++ b/update_package.sh @@ -24,7 +24,7 @@ if [ "x$REPO_NAME" = "x" ] ; then REPO_NAME="jdk8u" fi if [ "x$VERSION" = "x" ] ; then - VERSION="aarch64-jdk8u92-b14" + VERSION="aarch64-jdk8u101-b14" fi if [ "x$COMPRESSION" = "x" ] ; then @@ -102,7 +102,7 @@ if [ "x$VERSION" = "xtip" ] ; then VERSION="tip" else #hardcoding version for anything else except tip - VERSION="aarch64-shenandoah-jdk8u92-b14" + VERSION="aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25" fi MAIN_REPO_NAME=$REPO_NAME REPO_NAME=jdk8u-shenandoah