Updated to security u91
This commit is contained in:
parent
ca9abca9f1
commit
c7d7bec80a
1
.gitignore
vendored
1
.gitignore
vendored
@ -54,3 +54,4 @@
|
|||||||
/aarch64-port-jdk8u-aarch64-jdk8u72-b15-ec.tar.xz
|
/aarch64-port-jdk8u-aarch64-jdk8u72-b15-ec.tar.xz
|
||||||
/aarch64-port-jdk8u-aarch64-jdk8u72-b16-ec.tar.xz
|
/aarch64-port-jdk8u-aarch64-jdk8u72-b16-ec.tar.xz
|
||||||
/aarch64-port-jdk8u-aarch64-jdk8u77-b03.tar.xz
|
/aarch64-port-jdk8u-aarch64-jdk8u77-b03.tar.xz
|
||||||
|
/aarch64-port-jdk8u-aarch64-jdk8u91-b14.tar.xz
|
||||||
|
248
8132051-aarch64.patch
Normal file
248
8132051-aarch64.patch
Normal file
@ -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;
|
74
8132051-zero.patch
Normal file
74
8132051-zero.patch
Normal file
@ -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,
|
49
TestECDSA.java
Normal file
49
TestECDSA.java
Normal file
@ -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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
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.");
|
||||||
|
}
|
||||||
|
}
|
@ -39,7 +39,11 @@
|
|||||||
# is expected in one single case at the end of build
|
# is expected in one single case at the end of build
|
||||||
%global rev_build_loop %{build_loop2} %{build_loop1}
|
%global rev_build_loop %{build_loop2} %{build_loop1}
|
||||||
|
|
||||||
|
%ifarch %{jit_arches}
|
||||||
|
%global bootstrap_build 1
|
||||||
|
%else
|
||||||
%global bootstrap_build 0
|
%global bootstrap_build 0
|
||||||
|
%endif
|
||||||
|
|
||||||
%if %{bootstrap_build}
|
%if %{bootstrap_build}
|
||||||
%global targets bootcycle-images docs
|
%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.
|
# note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there.
|
||||||
%global project aarch64-port
|
%global project aarch64-port
|
||||||
%global repo jdk8u
|
%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 %%)
|
# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont forget spec escape % by %%)
|
||||||
%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
|
%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
|
||||||
# eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
|
# eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
|
||||||
@ -227,7 +231,8 @@ if [ "$1" -gt 1 ]; then
|
|||||||
"${sum}" = 'd17958676bdb9f9d941c8a59655311fb' -o \\
|
"${sum}" = 'd17958676bdb9f9d941c8a59655311fb' -o \\
|
||||||
"${sum}" = '5463aef7dbf0bbcfe79e0336a7f92701' -o \\
|
"${sum}" = '5463aef7dbf0bbcfe79e0336a7f92701' -o \\
|
||||||
"${sum}" = '400cc64d4dd31f36dc0cc2c701d603db' -o \\
|
"${sum}" = '400cc64d4dd31f36dc0cc2c701d603db' -o \\
|
||||||
"${sum}" = '321342219bb130d238ff144b9e5dbfc1' ]; then
|
"${sum}" = '321342219bb130d238ff144b9e5dbfc1' -o \\
|
||||||
|
"${sum}" = '134a37a84983b620f4d8d51a550c0c38' ]; then
|
||||||
if [ -f "${javasecurity}.rpmnew" ]; then
|
if [ -f "${javasecurity}.rpmnew" ]; then
|
||||||
mv -f "${javasecurity}.rpmnew" "${javasecurity}"
|
mv -f "${javasecurity}.rpmnew" "${javasecurity}"
|
||||||
fi
|
fi
|
||||||
@ -761,7 +766,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
|
|||||||
|
|
||||||
Name: java-%{javaver}-%{origin}
|
Name: java-%{javaver}-%{origin}
|
||||||
Version: %{javaver}.%{updatever}
|
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,
|
# 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
|
# 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
|
# 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
|
# aarch64-port now contains integration forest of both aarch64 and normal jdk
|
||||||
# Source from upstream OpenJDK8 project. To regenerate, use
|
# 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=<path to checked-out repository> generate_source_tarball.sh
|
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
|
||||||
# where the source is obtained from http://hg.openjdk.java.net/%%{project}/%%{repo}
|
# where the source is obtained from http://hg.openjdk.java.net/%%{project}/%%{repo}
|
||||||
Source0: %{project}-%{repo}-%{revision}.tar.xz
|
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
|
# Ensure we aren't using the limited crypto policy
|
||||||
Source13: TestCryptoLevel.java
|
Source13: TestCryptoLevel.java
|
||||||
|
|
||||||
|
# Ensure ECDSA is working
|
||||||
|
Source14: TestECDSA.java
|
||||||
|
|
||||||
Source20: repackReproduciblePolycies.sh
|
Source20: repackReproduciblePolycies.sh
|
||||||
|
|
||||||
# New versions of config files with aarch64 support. This is not upstream yet.
|
# 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
|
# PR1983: Support using the system installation of NSS with the SunEC provider
|
||||||
# PR2127: SunEC provider crashes when built using system NSS
|
# PR2127: SunEC provider crashes when built using system NSS
|
||||||
# PR2815: Race condition in SunEC provider with 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
|
Patch513: pr1983-jdk.patch
|
||||||
Patch514: pr1983-root.patch
|
Patch514: pr1983-root.patch
|
||||||
Patch515: pr2127.patch
|
Patch515: pr2127.patch
|
||||||
Patch516: pr2815.patch
|
Patch516: pr2815.patch
|
||||||
|
Patch517: pr2899.patch
|
||||||
|
|
||||||
# Arch-specific upstreamable patches
|
# Arch-specific upstreamable patches
|
||||||
# PR2415: JVM -Xmx requirement is too high on s390
|
# 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
|
# In progress: http://mail.openjdk.java.net/pipermail/awt-dev/2016-March/010742.html
|
||||||
Patch508: rh1176206-jdk.patch
|
Patch508: rh1176206-jdk.patch
|
||||||
Patch509: rh1176206-root.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
|
# Patches upstream and appearing in 8u76
|
||||||
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
|
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
|
||||||
@ -1181,11 +1197,14 @@ sh %{SOURCE12}
|
|||||||
%patch102
|
%patch102
|
||||||
%patch103
|
%patch103
|
||||||
|
|
||||||
# aarch64 build fixes
|
# Zero fixes.
|
||||||
%patch106
|
|
||||||
|
|
||||||
# Zero PPC fixes.
|
|
||||||
%patch403
|
%patch403
|
||||||
|
%patch505
|
||||||
|
%patch606
|
||||||
|
|
||||||
|
# AArch64 fixes
|
||||||
|
%patch106
|
||||||
|
%patch701
|
||||||
|
|
||||||
%patch603
|
%patch603
|
||||||
%patch601
|
%patch601
|
||||||
@ -1194,7 +1213,6 @@ sh %{SOURCE12}
|
|||||||
|
|
||||||
%patch502
|
%patch502
|
||||||
%patch504
|
%patch504
|
||||||
%patch505
|
|
||||||
%patch506
|
%patch506
|
||||||
%patch507
|
%patch507
|
||||||
%patch508
|
%patch508
|
||||||
@ -1205,7 +1223,7 @@ sh %{SOURCE12}
|
|||||||
%patch514
|
%patch514
|
||||||
%patch515
|
%patch515
|
||||||
%patch516
|
%patch516
|
||||||
|
%patch517
|
||||||
%patch400
|
%patch400
|
||||||
|
|
||||||
# Extract systemtap tapsets
|
# Extract systemtap tapsets
|
||||||
@ -1369,6 +1387,10 @@ export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{j2sdkimage}
|
|||||||
$JAVA_HOME/bin/javac -d . %{SOURCE13}
|
$JAVA_HOME/bin/javac -d . %{SOURCE13}
|
||||||
$JAVA_HOME/bin/java TestCryptoLevel
|
$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
|
# Check debug symbols are present and can identify code
|
||||||
SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so"
|
SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so"
|
||||||
if [ -f "$SERVER_JVM" ] ; then
|
if [ -f "$SERVER_JVM" ] ; then
|
||||||
@ -1791,10 +1813,81 @@ require "copy_jdk_configs.lua"
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
|
||||||
|
* Tue Apr 12 2016 Andrew Hughes <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 1:1.8.0.91-1.b14
|
||||||
|
- Add 8132051 port to AArch64.
|
||||||
|
- Resolves: rhbz#1325423
|
||||||
|
|
||||||
|
* Mon Apr 11 2016 Andrew Hughes <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 1:1.8.0.91-1.b14
|
||||||
|
- Update to u91b14.
|
||||||
|
- Resolves: rhbz#1325423
|
||||||
|
|
||||||
* Mon Apr 04 2016 jvanek <jvanek@redhat.com> - 1:1.8.0.77-2.b03
|
* Mon Apr 04 2016 jvanek <jvanek@redhat.com> - 1:1.8.0.77-2.b03
|
||||||
- added patch400 jdk8-archivedJavadoc.patch
|
- added patch400 jdk8-archivedJavadoc.patch
|
||||||
- added javadoc-zip(-debug) subpackage with compressed javadoc
|
- added javadoc-zip(-debug) subpackage with compressed javadoc
|
||||||
|
|
||||||
|
* Thu Mar 31 2016 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.77-3.b03
|
||||||
|
- Fix typo in test invocation.
|
||||||
|
- Resolves: rhbz#1245810
|
||||||
|
|
||||||
|
* Thu Mar 31 2016 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.77-3.b03
|
||||||
|
- Add ECDSA test to ensure ECC is working.
|
||||||
|
- Resolves: rhbz#1245810
|
||||||
|
|
||||||
|
* Wed Mar 30 2016 Andrew Hughes <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 1:1.8.0.77-1.b03
|
* Wed Mar 23 2016 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.77-1.b03
|
||||||
- Update to u77b03.
|
- Update to u77b03.
|
||||||
|
|
||||||
|
23
pr2899.patch
Normal file
23
pr2899.patch
Normal file
@ -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 <akashche@redhat.com>
|
||||||
|
|
||||||
|
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
|
@ -128,3 +128,16 @@ diff -r cf43a852f486 src/share/vm/utilities/globalDefinitions.hpp
|
|||||||
|
|
||||||
#define INTX_FORMAT "%" PRIdPTR
|
#define INTX_FORMAT "%" PRIdPTR
|
||||||
#define UINTX_FORMAT "%" PRIuPTR
|
#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:
|
||||||
|
2
sources
2
sources
@ -1,2 +1,2 @@
|
|||||||
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
|
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
|
||||||
4959de8fdb9f953ff526bb348d27e97a aarch64-port-jdk8u-aarch64-jdk8u77-b03.tar.xz
|
39880a5af218dfb9ef167bf1800b1b45 aarch64-port-jdk8u-aarch64-jdk8u91-b14.tar.xz
|
||||||
|
@ -24,7 +24,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
|
|||||||
REPO_NAME="jdk8u"
|
REPO_NAME="jdk8u"
|
||||||
fi
|
fi
|
||||||
if [ "x$VERSION" = "x" ] ; then
|
if [ "x$VERSION" = "x" ] ; then
|
||||||
VERSION="aarch64-jdk8u77-b03"
|
VERSION="aarch64-jdk8u91-b14"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "x$COMPRESSION" = "x" ] ; then
|
if [ "x$COMPRESSION" = "x" ] ; then
|
||||||
|
Loading…
Reference in New Issue
Block a user