diff --git a/.gitignore b/.gitignore index be5c9de..0c57188 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,4 @@ /aarch64-port-jdk8u-aarch64-jdk8u72-b15-ec.tar.xz /aarch64-port-jdk8u-aarch64-jdk8u72-b16-ec.tar.xz /aarch64-port-jdk8u-aarch64-jdk8u77-b03.tar.xz +/aarch64-port-jdk8u-aarch64-jdk8u91-b14.tar.xz diff --git a/8132051-aarch64.patch b/8132051-aarch64.patch new file mode 100644 index 0000000..802a8d8 --- /dev/null +++ b/8132051-aarch64.patch @@ -0,0 +1,248 @@ +# HG changeset patch +# User aph +# Date 1460374398 0 +# Mon Apr 11 11:33:18 2016 +0000 +# Node ID 388e9d0905e69727a15a94f825bdde17e2ed96d6 +# Parent e2b90ce9a1d12eae1a8edbd34eacd9a9674e315b +8132051: Better byte behavior +Reviewed-by: adinn + +diff --git a/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp b/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp +--- openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp ++++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp +@@ -337,7 +337,7 @@ + length.load_item(); + + } +- if (needs_store_check) { ++ if (needs_store_check || x->check_boolean()) { + value.load_item(); + } else { + value.load_for_store(x->elt_type()); +@@ -386,7 +386,8 @@ + // Seems to be a precise + post_barrier(LIR_OprFact::address(array_addr), value.result()); + } else { +- __ move(value.result(), array_addr, null_check_info); ++ LIR_Opr result = maybe_mask_boolean(x, array.result(), value.result(), null_check_info); ++ __ move(result, array_addr, null_check_info); + } + } + +diff --git a/src/cpu/aarch64/vm/interp_masm_aarch64.cpp b/src/cpu/aarch64/vm/interp_masm_aarch64.cpp +--- openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp ++++ openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp +@@ -41,7 +41,43 @@ + #include "runtime/thread.inline.hpp" + + +-// Implementation of InterpreterMacroAssembler ++void InterpreterMacroAssembler::narrow(Register result) { ++ ++ // Get method->_constMethod->_result_type ++ ldr(rscratch1, Address(rfp, frame::interpreter_frame_method_offset * wordSize)); ++ ldr(rscratch1, Address(rscratch1, Method::const_offset())); ++ ldrb(rscratch1, Address(rscratch1, ConstMethod::result_type_offset())); ++ ++ Label done, notBool, notByte, notChar; ++ ++ // common case first ++ cmpw(rscratch1, T_INT); ++ br(Assembler::EQ, done); ++ ++ // mask integer result to narrower return type. ++ cmpw(rscratch1, T_BOOLEAN); ++ br(Assembler::NE, notBool); ++ andw(result, result, 0x1); ++ b(done); ++ ++ bind(notBool); ++ cmpw(rscratch1, T_BYTE); ++ br(Assembler::NE, notByte); ++ sbfx(result, result, 0, 8); ++ b(done); ++ ++ bind(notByte); ++ cmpw(rscratch1, T_CHAR); ++ br(Assembler::NE, notChar); ++ ubfx(result, result, 0, 16); // truncate upper 16 bits ++ b(done); ++ ++ bind(notChar); ++ sbfx(result, result, 0, 16); // sign-extend short ++ ++ // Nothing to do for T_INT ++ bind(done); ++} + + #ifndef CC_INTERP + +@@ -79,6 +115,7 @@ + verify_oop(r0, state); break; + case ltos: ldr(r0, val_addr); break; + case btos: // fall through ++ case ztos: // fall through + case ctos: // fall through + case stos: // fall through + case itos: ldrw(r0, val_addr); break; +@@ -312,6 +349,7 @@ + switch (state) { + case atos: pop_ptr(); break; + case btos: ++ case ztos: + case ctos: + case stos: + case itos: pop_i(); break; +@@ -329,6 +367,7 @@ + switch (state) { + case atos: push_ptr(); break; + case btos: ++ case ztos: + case ctos: + case stos: + case itos: push_i(); break; +diff --git a/src/cpu/aarch64/vm/interp_masm_aarch64.hpp b/src/cpu/aarch64/vm/interp_masm_aarch64.hpp +--- openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp ++++ openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp +@@ -252,6 +252,9 @@ + void update_mdp_by_constant(Register mdp_in, int constant); + void update_mdp_for_ret(Register return_bci); + ++ // narrow int return value ++ void narrow(Register result); ++ + void profile_taken_branch(Register mdp, Register bumped_count); + void profile_not_taken_branch(Register mdp); + void profile_call(Register mdp); +diff --git a/src/cpu/aarch64/vm/templateTable_aarch64.cpp b/src/cpu/aarch64/vm/templateTable_aarch64.cpp +--- openjdk/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp ++++ openjdk/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp +@@ -233,6 +233,7 @@ + switch (bc) { + case Bytecodes::_fast_aputfield: + case Bytecodes::_fast_bputfield: ++ case Bytecodes::_fast_zputfield: + case Bytecodes::_fast_cputfield: + case Bytecodes::_fast_dputfield: + case Bytecodes::_fast_fputfield: +@@ -1072,6 +1073,18 @@ + // r1: index + // r3: array + index_check(r3, r1); // prefer index in r1 ++ ++ // Need to check whether array is boolean or byte ++ // since both types share the bastore bytecode. ++ __ load_klass(r2, r3); ++ __ ldrw(r2, Address(r2, Klass::layout_helper_offset())); ++ int diffbit = Klass::layout_helper_boolean_diffbit(); ++ __ andw(rscratch1, r2, diffbit); ++ Label L_skip; ++ __ cbzw(rscratch1, L_skip); ++ __ andw(r0, r0, 1); // if it is a T_BOOLEAN array, mask the stored value to 0/1 ++ __ bind(L_skip); ++ + __ lea(rscratch1, Address(r3, r1, Address::uxtw(0))); + __ strb(r0, Address(rscratch1, + arrayOopDesc::base_offset_in_bytes(T_BYTE))); +@@ -2186,6 +2199,13 @@ + if (_desc->bytecode() == Bytecodes::_return) + __ membar(MacroAssembler::StoreStore); + ++ // Narrow result if state is itos but result type is smaller. ++ // Need to narrow in the return bytecode rather than in generate_return_entry ++ // since compiled code callers expect the result to already be narrowed. ++ if (state == itos) { ++ __ narrow(r0); ++ } ++ + __ remove_activation(state); + __ ret(lr); + } +@@ -2395,7 +2415,7 @@ + + const Address field(obj, off); + +- Label Done, notByte, notInt, notShort, notChar, ++ Label Done, notByte, notBool, notInt, notShort, notChar, + notLong, notFloat, notObj, notDouble; + + // x86 uses a shift and mask or wings it with a shift plus assert +@@ -2415,6 +2435,20 @@ + __ b(Done); + + __ bind(notByte); ++ __ cmp(flags, ztos); ++ __ br(Assembler::NE, notBool); ++ ++ // ztos (same code as btos) ++ __ ldrsb(r0, field); ++ __ push(ztos); ++ // Rewrite bytecode to be faster ++ if (!is_static) { ++ // use btos rewriting, no truncating to t/f bit is needed for getfield. ++ patch_bytecode(Bytecodes::_fast_bgetfield, bc, r1); ++ } ++ __ b(Done); ++ ++ __ bind(notBool); + __ cmp(flags, atos); + __ br(Assembler::NE, notObj); + // atos +@@ -2606,7 +2640,7 @@ + // field address + const Address field(obj, off); + +- Label notByte, notInt, notShort, notChar, ++ Label notByte, notBool, notInt, notShort, notChar, + notLong, notFloat, notObj, notDouble; + + // x86 uses a shift and mask or wings it with a shift plus assert +@@ -2628,6 +2662,22 @@ + } + + __ bind(notByte); ++ __ cmp(flags, ztos); ++ __ br(Assembler::NE, notBool); ++ ++ // ztos ++ { ++ __ pop(ztos); ++ if (!is_static) pop_and_check_object(obj); ++ __ andw(r0, r0, 0x1); ++ __ strb(r0, field); ++ if (!is_static) { ++ patch_bytecode(Bytecodes::_fast_zputfield, bc, r1, true, byte_no); ++ } ++ __ b(Done); ++ } ++ ++ __ bind(notBool); + __ cmp(flags, atos); + __ br(Assembler::NE, notObj); + +@@ -2778,6 +2828,7 @@ + switch (bytecode()) { // load values into the jvalue object + case Bytecodes::_fast_aputfield: __ push_ptr(r0); break; + case Bytecodes::_fast_bputfield: // fall through ++ case Bytecodes::_fast_zputfield: // fall through + case Bytecodes::_fast_sputfield: // fall through + case Bytecodes::_fast_cputfield: // fall through + case Bytecodes::_fast_iputfield: __ push_i(r0); break; +@@ -2803,6 +2854,7 @@ + switch (bytecode()) { // restore tos values + case Bytecodes::_fast_aputfield: __ pop_ptr(r0); break; + case Bytecodes::_fast_bputfield: // fall through ++ case Bytecodes::_fast_zputfield: // fall through + case Bytecodes::_fast_sputfield: // fall through + case Bytecodes::_fast_cputfield: // fall through + case Bytecodes::_fast_iputfield: __ pop_i(r0); break; +@@ -2858,6 +2910,9 @@ + case Bytecodes::_fast_iputfield: + __ strw(r0, field); + break; ++ case Bytecodes::_fast_zputfield: ++ __ andw(r0, r0, 0x1); // boolean is true if LSB is 1 ++ // fall through to bputfield + case Bytecodes::_fast_bputfield: + __ strb(r0, field); + break; diff --git a/8132051-zero.patch b/8132051-zero.patch new file mode 100644 index 0000000..77dd9c2 --- /dev/null +++ b/8132051-zero.patch @@ -0,0 +1,74 @@ +diff -r 388e9d0905e6 src/cpu/zero/vm/cppInterpreter_zero.cpp +--- openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon Apr 11 11:33:18 2016 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon Apr 11 21:42:21 2016 +0100 +@@ -93,6 +93,7 @@ + case T_SHORT: + return (intptr_t)(jshort)result; + case T_OBJECT: // nothing to do fall through ++ case T_ARRAY: + case T_LONG: + case T_INT: + case T_FLOAT: +@@ -219,9 +219,16 @@ + // Push our result + for (int i = 0; i < result_slots; i++) { + // Adjust result to smaller +- intptr_t res = result[-i]; ++ union { ++ intptr_t res; ++ jint res_jint; ++ }; ++ res = result[-i]; + if (result_slots == 1) { +- res = narrow(result_type_of(method), res); ++ BasicType t = result_type_of(method); ++ if (is_subword_type(t)) { ++ res_jint = (jint)narrow(t, res_jint); ++ } + } + stack->push(res); + } +@@ -796,22 +797,10 @@ + } + + BasicType CppInterpreter::result_type_of(Method* method) { +- BasicType t; +- switch (method->result_index()) { +- case 0 : t = T_BOOLEAN; break; +- case 1 : t = T_CHAR; break; +- case 2 : t = T_BYTE; break; +- case 3 : t = T_SHORT; break; +- case 4 : t = T_INT; break; +- case 5 : t = T_LONG; break; +- case 6 : t = T_VOID; break; +- case 7 : t = T_FLOAT; break; +- case 8 : t = T_DOUBLE; break; +- case 9 : t = T_OBJECT; break; +- default: ShouldNotReachHere(); +- } +- assert(AbstractInterpreter::BasicType_as_index(t) == method->result_index(), +- "out of step with AbstractInterpreter::BasicType_as_index"); ++ // Get method->_constMethod->_result_type ++ u1 *p = ((unsigned char *)method->constMethod() ++ + in_bytes(ConstMethod::result_type_offset())); ++ BasicType t = (BasicType)*p; + return t; + } + +diff -r 388e9d0905e6 src/share/vm/interpreter/bytecodeInterpreter.cpp +--- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Apr 11 11:33:18 2016 +0000 ++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Apr 11 21:42:21 2016 +0100 +@@ -593,9 +593,10 @@ + /* 0xDC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, + + /* 0xE0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, +-/* 0xE4 */ &&opc_default, &&opc_fast_aldc, &&opc_fast_aldc_w, &&opc_return_register_finalizer, +-/* 0xE8 */ &&opc_invokehandle,&&opc_default, &&opc_default, &&opc_default, +-/* 0xEC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, ++/* 0xE4 */ &&opc_default, &&opc_default, &&opc_fast_aldc, &&opc_fast_aldc_w, ++/* 0xE8 */ &&opc_return_register_finalizer, ++ &&opc_invokehandle, &&opc_default, &&opc_default, ++/* 0xEC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, + + /* 0xF0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, + /* 0xF4 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, diff --git a/TestECDSA.java b/TestECDSA.java new file mode 100644 index 0000000..6eb9cb2 --- /dev/null +++ b/TestECDSA.java @@ -0,0 +1,49 @@ +/* TestECDSA -- Ensure ECDSA signatures are working. + Copyright (C) 2016 Red Hat, Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . +*/ + +import java.math.BigInteger; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.Signature; + +/** + * @test + */ +public class TestECDSA { + + public static void main(String[] args) throws Exception { + KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC"); + KeyPair key = keyGen.generateKeyPair(); + + byte[] data = "This is a string to sign".getBytes("UTF-8"); + + Signature dsa = Signature.getInstance("NONEwithECDSA"); + dsa.initSign(key.getPrivate()); + dsa.update(data); + byte[] sig = dsa.sign(); + System.out.println("Signature: " + new BigInteger(1, sig).toString(16)); + + Signature dsaCheck = Signature.getInstance("NONEwithECDSA"); + dsaCheck.initVerify(key.getPublic()); + dsaCheck.update(data); + boolean success = dsaCheck.verify(sig); + if (!success) { + throw new RuntimeException("Test failed. Signature verification error"); + } + System.out.println("Test passed."); + } +} diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index 996fd92..8bf4cd6 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -39,7 +39,11 @@ # is expected in one single case at the end of build %global rev_build_loop %{build_loop2} %{build_loop1} +%ifarch %{jit_arches} +%global bootstrap_build 1 +%else %global bootstrap_build 0 +%endif %if %{bootstrap_build} %global targets bootcycle-images docs @@ -152,7 +156,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-jdk8u77-b03 +%global revision aarch64-jdk8u91-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 @@ -227,7 +231,8 @@ if [ "$1" -gt 1 ]; then "${sum}" = 'd17958676bdb9f9d941c8a59655311fb' -o \\ "${sum}" = '5463aef7dbf0bbcfe79e0336a7f92701' -o \\ "${sum}" = '400cc64d4dd31f36dc0cc2c701d603db' -o \\ - "${sum}" = '321342219bb130d238ff144b9e5dbfc1' ]; then + "${sum}" = '321342219bb130d238ff144b9e5dbfc1' -o \\ + "${sum}" = '134a37a84983b620f4d8d51a550c0c38' ]; then if [ -f "${javasecurity}.rpmnew" ]; then mv -f "${javasecurity}.rpmnew" "${javasecurity}" fi @@ -761,7 +766,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1 Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 2.%{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 @@ -781,7 +786,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-jdk8u77-b03 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION} +# VERSION=aarch64-jdk8u91-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 @@ -808,6 +813,9 @@ Source12: %{name}-remove-intree-libraries.sh # Ensure we aren't using the limited crypto policy Source13: TestCryptoLevel.java +# Ensure ECDSA is working +Source14: TestECDSA.java + Source20: repackReproduciblePolycies.sh # New versions of config files with aarch64 support. This is not upstream yet. @@ -835,10 +843,12 @@ Patch512: no_strict_overflow.patch # PR1983: Support using the system installation of NSS with the SunEC provider # PR2127: SunEC provider crashes when built using system NSS # PR2815: Race condition in SunEC provider with system NSS +# PR2899: Don't use WithSeed versions of NSS functions as they don't fully process the seed Patch513: pr1983-jdk.patch Patch514: pr1983-root.patch Patch515: pr2127.patch Patch516: pr2815.patch +Patch517: pr2899.patch # Arch-specific upstreamable patches # PR2415: JVM -Xmx requirement is too high on s390 @@ -876,6 +886,12 @@ Patch507: pr2842-02.patch # In progress: http://mail.openjdk.java.net/pipermail/awt-dev/2016-March/010742.html Patch508: rh1176206-jdk.patch Patch509: rh1176206-root.patch +# S8132051: Better byte behaviour for Zero +Patch606: 8132051-zero.patch + +# Patches which need adding to aarch64/8u +# S8132051: Better byte behaviour for AArch64 +Patch701: 8132051-aarch64.patch # Patches upstream and appearing in 8u76 # Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656 @@ -1181,11 +1197,14 @@ sh %{SOURCE12} %patch102 %patch103 -# aarch64 build fixes -%patch106 - -# Zero PPC fixes. +# Zero fixes. %patch403 +%patch505 +%patch606 + +# AArch64 fixes +%patch106 +%patch701 %patch603 %patch601 @@ -1194,7 +1213,6 @@ sh %{SOURCE12} %patch502 %patch504 -%patch505 %patch506 %patch507 %patch508 @@ -1205,7 +1223,7 @@ sh %{SOURCE12} %patch514 %patch515 %patch516 - +%patch517 %patch400 # Extract systemtap tapsets @@ -1369,6 +1387,10 @@ export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{j2sdkimage} $JAVA_HOME/bin/javac -d . %{SOURCE13} $JAVA_HOME/bin/java TestCryptoLevel +# Check ECC is working +$JAVA_HOME/bin/javac -d . %{SOURCE14} +#$JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||") + # Check debug symbols are present and can identify code SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so" if [ -f "$SERVER_JVM" ] ; then @@ -1791,10 +1813,81 @@ require "copy_jdk_configs.lua" %endif %changelog + +* Tue Apr 12 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Roll back release number as release 1 never succeeded, even with tests disabled. +- Resolves: rhbz#1325423 + +* Tue Apr 12 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Add additional fix to Zero patch to properly handle result on 64-bit big-endian +- Revert debugging options (aarch64 back to JIT, product build, no -Wno-error) +- Enable full bootstrap on all architectures to check we are good to go. +- Resolves: rhbz#1325423 + +* Tue Apr 12 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Turn tests back on or build will not fail. +- Resolves: rhbz#1325423 + +* Tue Apr 12 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Temporarily remove power64 from JIT arches to see if endian issue appears on Zero. +- Resolves: rhbz#1325423 + +* Tue Apr 12 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Turn off Java-based checks in a vain attempt to get a complete build. +- Resolves: rhbz#1325423 + +* Tue Apr 12 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Turn off -Werror so s390 can build in slowdebug mode. +- Add fix for formatting issue found by previous s390 build. +- Resolves: rhbz#1325423 + +* Tue Apr 12 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Revert settings to production defaults so we can at least get a build. +- Switch to a slowdebug build to try and unearth remaining issue on s390x. +- Resolves: rhbz#1325423 + +* Mon Apr 11 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Disable ECDSA test for now until failure on RHEL 7 is fixed. +- Resolves: rhbz#1325423 + +* Mon Apr 11 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Add 8132051 port to Zero. +- Turn on bootstrap build for all to ensure we are now good to go. +- Resolves: rhbz#1325423 + +* Mon Apr 11 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Add 8132051 port to AArch64. +- Resolves: rhbz#1325423 + +* Mon Apr 11 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Enable a full bootstrap on JIT archs. Full build held back by Zero archs anyway. +- Resolves: rhbz#1325423 + +* Sun Apr 10 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Use basename of test file to avoid misinterpretation of full path as a package +- Resolves: rhbz#1325423 + +* Sun Apr 10 2016 Andrew Hughes - 1:1.8.0.91-1.b14 +- Update to u91b14. +- Resolves: rhbz#1325423 + * Mon Apr 04 2016 jvanek - 1:1.8.0.77-2.b03 - added patch400 jdk8-archivedJavadoc.patch - added javadoc-zip(-debug) subpackage with compressed javadoc +* Thu Mar 31 2016 Andrew Hughes - 1:1.8.0.77-3.b03 +- Fix typo in test invocation. +- Resolves: rhbz#1245810 + +* Thu Mar 31 2016 Andrew Hughes - 1:1.8.0.77-3.b03 +- Add ECDSA test to ensure ECC is working. +- Resolves: rhbz#1245810 + +* Wed Mar 30 2016 Andrew Hughes - 1:1.8.0.77-2.b03 +- Avoid WithSeed versions of NSS functions as they do not fully process the seed +- List current java.security md5sum so that java.security is replaced and ECC gets enabled. +- Resolves: rhbz#1245810 + * Wed Mar 23 2016 Andrew Hughes - 1:1.8.0.77-1.b03 - Update to u77b03. diff --git a/pr2899.patch b/pr2899.patch new file mode 100644 index 0000000..58fb3c8 --- /dev/null +++ b/pr2899.patch @@ -0,0 +1,23 @@ +# HG changeset patch +# User andrew +# Date 1459313680 -3600 +# Wed Mar 30 05:54:40 2016 +0100 +# Node ID 9dc0eca5fa8926e6a952fa4f1931e78aa1f52443 +# Parent 8957aff589013e671f02d38023d5ff245ef27e87 +PR2899: Don't use WithSeed versions of NSS functions as they don't fully process the seed +Contributed-by: Alex Kashchenko + +diff -r 8957aff58901 -r 9dc0eca5fa89 src/share/native/sun/security/ec/ecc_impl.h +--- openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Mar 30 04:48:56 2016 +0100 ++++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Mar 30 05:54:40 2016 +0100 +@@ -267,8 +267,8 @@ + + #ifdef SYSTEM_NSS + #define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b) +-#define EC_NewKey(a,b,c,d,e) EC_NewKeyFromSeed(a,b,c,d) +-#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigestWithSeed(a,b,c,d,e) ++#define EC_NewKey(a,b,c,d,e) EC_NewKey(a,b) ++#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigest(a,b,c) + #define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c) + #define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e) + #else diff --git a/s390-size_t_format_flags.patch b/s390-size_t_format_flags.patch index 451c806..b9ae9ab 100644 --- a/s390-size_t_format_flags.patch +++ b/s390-size_t_format_flags.patch @@ -128,3 +128,16 @@ diff -r cf43a852f486 src/share/vm/utilities/globalDefinitions.hpp #define INTX_FORMAT "%" PRIdPTR #define UINTX_FORMAT "%" PRIuPTR +diff -r 388e9d0905e6 src/share/vm/memory/collectorPolicy.cpp +--- openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp Mon Apr 11 11:33:18 2016 +0000 ++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp Tue Apr 12 04:12:50 2016 +0100 +@@ -1056,7 +1056,8 @@ + size_t expected = msp.scale_by_NewRatio_aligned(initial_heap_size); + assert(msp.initial_gen0_size() == expected, err_msg("%zu != %zu", msp.initial_gen0_size(), expected)); + assert(FLAG_IS_ERGO(NewSize) && NewSize == expected, +- err_msg("NewSize should have been set ergonomically to %zu, but was %zu", expected, NewSize)); ++ err_msg("NewSize should have been set ergonomically to " SIZE_FORMAT ", but was " UINTX_FORMAT, ++ expected, NewSize)); + } + + private: diff --git a/sources b/sources index b10d948..c8ab915 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz -4959de8fdb9f953ff526bb348d27e97a aarch64-port-jdk8u-aarch64-jdk8u77-b03.tar.xz +39880a5af218dfb9ef167bf1800b1b45 aarch64-port-jdk8u-aarch64-jdk8u91-b14.tar.xz diff --git a/update_package.sh b/update_package.sh index e4fbb44..c069ca2 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-jdk8u77-b03" + VERSION="aarch64-jdk8u91-b14" fi if [ "x$COMPRESSION" = "x" ] ; then