diff --git a/.gitignore b/.gitignore index 395f29b..4b4595f 100644 --- a/.gitignore +++ b/.gitignore @@ -61,3 +61,5 @@ /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 +/aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz +/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz diff --git a/6961123-pr2972-rh1339740.patch b/6961123-pr2972-rh1339740.patch deleted file mode 100644 index d880c5f..0000000 --- a/6961123-pr2972-rh1339740.patch +++ /dev/null @@ -1,21 +0,0 @@ -# HG changeset patch -# User omajid -# Date 1451403643 18000 -# Tue Dec 29 10:40:43 2015 -0500 -# Node ID 0be28a33e12dfc9ae1e4be381530643f691d351a -# Parent f4c9545cd8a56a5fab74c95de3573623ba2b83c4 -6961123, PR2972: setWMClass fails to null-terminate WM_CLASS string -Reviewed-by: serb - -diff -r f4c9545cd8a5 -r 0be28a33e12d src/solaris/classes/sun/awt/X11/XBaseWindow.java ---- openjdk/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java Thu Aug 28 05:20:02 2014 -0700 -+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java Tue Dec 29 10:40:43 2015 -0500 -@@ -673,7 +673,7 @@ - XToolkit.awtLock(); - try { - XAtom xa = XAtom.get(XAtom.XA_WM_CLASS); -- xa.setProperty8(getWindow(), cl[0] + '\0' + cl[1]); -+ xa.setProperty8(getWindow(), cl[0] + '\0' + cl[1] + '\0'); - } finally { - XToolkit.awtUnlock(); - } diff --git a/8148752-pr2943-rh1330188.patch b/8148752-pr2943-rh1330188.patch deleted file mode 100644 index d1207d0..0000000 --- a/8148752-pr2943-rh1330188.patch +++ /dev/null @@ -1,114 +0,0 @@ -# HG changeset patch -# User thartmann -# Date 1455606693 -3600 -# Tue Feb 16 08:11:33 2016 +0100 -# Node ID 7bb48ba4de4fb35c10c526146f65da74a3a16c7a -# Parent d15bc25b259dcffd2566f90ff09fd263e87e0304 -8148752, PR2943: Compiled StringBuilder code throws StringIndexOutOfBoundsException -Summary: Fixed handling of long/double MH arguments in GraphBuilder::try_method_handle_inline(). -Reviewed-by: roland, shade, vlivanov, kvn, twisti - -diff -r d15bc25b259d -r 7bb48ba4de4f src/share/vm/opto/callGenerator.cpp ---- openjdk/hotspot/src/share/vm/opto/callGenerator.cpp Wed Apr 20 04:04:43 2016 +0100 -+++ openjdk/hotspot/src/share/vm/opto/callGenerator.cpp Tue Feb 16 08:11:33 2016 +0100 -@@ -829,17 +829,18 @@ - } - } - // Cast reference arguments to its type. -- for (int i = 0; i < signature->count(); i++) { -+ for (int i = 0, j = 0; i < signature->count(); i++) { - ciType* t = signature->type_at(i); - if (t->is_klass()) { -- Node* arg = kit.argument(receiver_skip + i); -+ Node* arg = kit.argument(receiver_skip + j); - const TypeOopPtr* arg_type = arg->bottom_type()->isa_oopptr(); - const Type* sig_type = TypeOopPtr::make_from_klass(t->as_klass()); - if (arg_type != NULL && !arg_type->higher_equal(sig_type)) { - Node* cast_obj = gvn.transform(new (C) CheckCastPPNode(kit.control(), arg, sig_type)); -- kit.set_argument(receiver_skip + i, cast_obj); -+ kit.set_argument(receiver_skip + j, cast_obj); - } - } -+ j += t->size(); // long and double take two slots - } - - // Try to get the most accurate receiver type -diff -r d15bc25b259d -r 7bb48ba4de4f test/compiler/jsr292/LongReferenceCastingTest.java ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ openjdk/hotspot/test/compiler/jsr292/LongReferenceCastingTest.java Tue Feb 16 08:11:33 2016 +0100 -@@ -0,0 +1,75 @@ -+/* -+ * 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.lang.invoke.*; -+ -+/** -+ * @test -+ * @bug 8148752 -+ * @summary Test correct casting of MH arguments during inlining. -+ * @run main LongReferenceCastingTest -+ */ -+public class LongReferenceCastingTest { -+ static final String MY_STRING = "myString"; -+ static final MethodHandle MH; -+ -+ static { -+ try { -+ MethodHandles.Lookup lookup = MethodHandles.lookup(); -+ MethodType mt = MethodType.methodType(String.class, long.class, Object.class, String.class); -+ MH = lookup.findVirtual(LongReferenceCastingTest.class, "myMethod", mt); -+ } catch (Exception e) { -+ throw new Error(e); -+ } -+ } -+ -+ public String myMethod(long l, Object o, String s) { -+ // The long argument occupies two stack slots, causing C2 to treat it as -+ // two arguments and casting the fist one two long and the second one to Object. -+ // As a result, Object o is casted to String and the o.toString() call is -+ // inlined as String::toString(). We fail at runtime because 'o' is not a String. -+ return o.toString(); -+ } -+ -+ public String toString() { -+ return MY_STRING; -+ } -+ -+ public static void main(String[] args) throws Exception { -+ LongReferenceCastingTest test = new LongReferenceCastingTest(); -+ try { -+ for (int i = 0; i < 20_000; ++i) { -+ if (!test.invoke().equals(MY_STRING)) { -+ throw new RuntimeException("Invalid string"); -+ } -+ } -+ } catch (Throwable t) { -+ throw new RuntimeException("Test failed", t); -+ } -+ } -+ -+ public String invoke() throws Throwable { -+ return (String) MH.invokeExact(this, 0L, (Object)this, MY_STRING); -+ } -+} diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index 3922ab7..9b100a1 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-jdk8u101-b14 +%global revision aarch64-jdk8u102-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 @@ -785,7 +785,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1 Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 3.%{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 @@ -841,7 +841,7 @@ Source20: repackReproduciblePolycies.sh Source100: config.guess Source101: config.sub # shenandoah hotpost -Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz +Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz # RPM/distribution specific patches @@ -921,10 +921,6 @@ Patch531: 8157306-pr3121-rh1360863.patch Patch532: 8162384-pr3122-rh1358661.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 @@ -1271,9 +1267,7 @@ sh %{SOURCE12} %patch516 %patch517 %patch518 -%patch519 %patch400 -%patch520 %patch521 %patch522 %patch523 @@ -1873,6 +1867,13 @@ require "copy_jdk_configs.lua" %endif %changelog +* Thu Aug 25 2016 jvanek - 1:1.8.0.102-1.b14 +- updated to aarch64-jdk8u102-b14 (from aarch64-port/jdk8u) +- updated to aarch64-shenandoah-jdk8u102-b14 (from aarch64-port/jdk8u-shenandoah) of hotspot +- used aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz as new sources +- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz as new sources for hotspot +- removed upstreamed patches 519 and 520 + * Mon Aug 01 2016 Andrew Hughes - 1:1.8.0.101-3.b14 - Replace patch for S8162384 with upstream version. Document correctly along with SystemTap RH1204159 patch. - Resolves: rhbz#1358661 diff --git a/sources b/sources index 17743f3..ba27bf9 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ 94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz -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 +fd982589a6345c6dd3698256bed45d3d aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz +76ebec7a595c567a66b9d15fdc530a56 aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz diff --git a/update_package.sh b/update_package.sh index 1d29611..92534ab 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-jdk8u101-b14" + VERSION="aarch64-jdk8u102-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-jdk8u101-b14-shenandoah-merge-2016-07-25" + VERSION="aarch64-shenandoah-jdk8u102-b14" fi MAIN_REPO_NAME=$REPO_NAME REPO_NAME=jdk8u-shenandoah