diff --git a/.gitignore b/.gitignore index 3a01a08..96c115e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/aarch64-port-jdk8u-aarch64-jdk8u111-b15.tar.xz +SOURCES/aarch64-port-jdk8u-aarch64-jdk8u121-b13.tar.xz SOURCES/systemtap-tapset-3.1.0.tar.xz diff --git a/.java-1.8.0-openjdk.metadata b/.java-1.8.0-openjdk.metadata index a9e203a..fac76eb 100644 --- a/.java-1.8.0-openjdk.metadata +++ b/.java-1.8.0-openjdk.metadata @@ -1,2 +1,2 @@ -c32fc4a2f70f097b8726e396cceaad1bdad461b6 SOURCES/aarch64-port-jdk8u-aarch64-jdk8u111-b15.tar.xz +508be0d8b88737e62649b68eddccc247addbdb00 SOURCES/aarch64-port-jdk8u-aarch64-jdk8u121-b13.tar.xz 44b09844ec2e90db08d3d883993e0dbab0c1988a SOURCES/systemtap-tapset-3.1.0.tar.xz diff --git a/SOURCES/8044762-pr2960.patch b/SOURCES/8044762-pr2960.patch deleted file mode 100644 index af5b606..0000000 --- a/SOURCES/8044762-pr2960.patch +++ /dev/null @@ -1,45 +0,0 @@ -# HG changeset patch -# User dsamersoff -# Date 1403087398 25200 -# Wed Jun 18 03:29:58 2014 -0700 -# Node ID 13411144d46b50d0087f35eca2b8e827aae558f1 -# Parent 10c9f8461c297a200ef57970c1f4c32d4081d790 -8044762, PR2960: com/sun/jdi/OptionTest.java test time out -Summary: gdata could be NULL in debugInit_exit -Reviewed-by: dcubed - -diff -r 10c9f8461c29 -r 13411144d46b src/share/back/debugInit.c ---- openjdk/jdk/src/share/back/debugInit.c Fri May 20 19:42:05 2016 +0100 -+++ openjdk/jdk/src/share/back/debugInit.c Wed Jun 18 03:29:58 2014 -0700 -@@ -1307,22 +1307,26 @@ - if ( error != JVMTI_ERROR_NONE ) { - exit_code = 1; - if ( docoredump ) { -+ LOG_MISC(("Dumping core as requested by command line")); - finish_logging(exit_code); - abort(); - } - } -+ - if ( msg==NULL ) { - msg = ""; - } - - LOG_MISC(("Exiting with error %s(%d): %s", jvmtiErrorText(error), error, msg)); - -- gdata->vmDead = JNI_TRUE; -+ if (gdata != NULL) { -+ gdata->vmDead = JNI_TRUE; - -- /* Let's try and cleanup the JVMTI, if we even have one */ -- if ( gdata->jvmti != NULL ) { -- /* Dispose of jvmti (gdata->jvmti becomes NULL) */ -- disposeEnvironment(gdata->jvmti); -+ /* Let's try and cleanup the JVMTI, if we even have one */ -+ if ( gdata->jvmti != NULL ) { -+ /* Dispose of jvmti (gdata->jvmti becomes NULL) */ -+ disposeEnvironment(gdata->jvmti); -+ } - } - - /* Finish up logging. We reach here if JDWP is doing the exiting. */ diff --git a/SOURCES/8049226-pr2960.patch b/SOURCES/8049226-pr2960.patch deleted file mode 100644 index 0f6bdf8..0000000 --- a/SOURCES/8049226-pr2960.patch +++ /dev/null @@ -1,123 +0,0 @@ -# HG changeset patch -# User dsamersoff -# Date 1409228402 25200 -# Thu Aug 28 05:20:02 2014 -0700 -# Node ID f4c9545cd8a56a5fab74c95de3573623ba2b83c4 -# Parent 13411144d46b50d0087f35eca2b8e827aae558f1 -8049226, PR2960: com/sun/jdi/OptionTest.java test times out again -Summary: Don't call jni_FatalError if transport initialization fails -Reviewed-by: sspitsyn, sla - -diff -r 13411144d46b -r f4c9545cd8a5 src/share/back/debugInit.c ---- openjdk/jdk/src/share/back/debugInit.c Wed Jun 18 03:29:58 2014 -0700 -+++ openjdk/jdk/src/share/back/debugInit.c Thu Aug 28 05:20:02 2014 -0700 -@@ -1013,7 +1013,7 @@ - atexit_finish_logging(void) - { - /* Normal exit(0) (not _exit()) may only reach here */ -- finish_logging(0); /* Only first call matters */ -+ finish_logging(); /* Only first call matters */ - } - - static jboolean -@@ -1301,43 +1301,49 @@ - void - debugInit_exit(jvmtiError error, const char *msg) - { -- int exit_code = 0; -+ enum exit_codes { EXIT_NO_ERRORS = 0, EXIT_JVMTI_ERROR = 1, EXIT_TRANSPORT_ERROR = 2 }; - -- /* Pick an error code */ -- if ( error != JVMTI_ERROR_NONE ) { -- exit_code = 1; -- if ( docoredump ) { -- LOG_MISC(("Dumping core as requested by command line")); -- finish_logging(exit_code); -- abort(); -- } -+ // Prepare to exit. Log error and finish logging -+ LOG_MISC(("Exiting with error %s(%d): %s", jvmtiErrorText(error), error, -+ ((msg == NULL) ? "" : msg))); -+ -+ // coredump requested by command line. Keep JVMTI data dirty -+ if (error != JVMTI_ERROR_NONE && docoredump) { -+ LOG_MISC(("Dumping core as requested by command line")); -+ finish_logging(); -+ abort(); - } - -- if ( msg==NULL ) { -- msg = ""; -- } -+ finish_logging(); - -- LOG_MISC(("Exiting with error %s(%d): %s", jvmtiErrorText(error), error, msg)); -- -+ // Cleanup the JVMTI if we have one - if (gdata != NULL) { - gdata->vmDead = JNI_TRUE; -- -- /* Let's try and cleanup the JVMTI, if we even have one */ -- if ( gdata->jvmti != NULL ) { -- /* Dispose of jvmti (gdata->jvmti becomes NULL) */ -+ if (gdata->jvmti != NULL) { -+ // Dispose of jvmti (gdata->jvmti becomes NULL) - disposeEnvironment(gdata->jvmti); - } - } - -- /* Finish up logging. We reach here if JDWP is doing the exiting. */ -- finish_logging(exit_code); /* Only first call matters */ -- -- /* Let's give the JNI a FatalError if non-exit 0, which is historic way */ -- if ( exit_code != 0 ) { -- JNIEnv *env = NULL; -- jniFatalError(env, msg, error, exit_code); -+ // We are here with no errors. Kill entire process and exit with zero exit code -+ if (error == JVMTI_ERROR_NONE) { -+ forceExit(EXIT_NO_ERRORS); -+ return; - } - -- /* Last chance to die, this kills the entire process. */ -- forceExit(exit_code); -+ // No transport initilized. -+ // As we don't have any details here exiting with separate exit code -+ if (error == AGENT_ERROR_TRANSPORT_INIT) { -+ forceExit(EXIT_TRANSPORT_ERROR); -+ return; -+ } -+ -+ // We have JVMTI error. Call hotspot jni_FatalError handler -+ jniFatalError(NULL, msg, error, EXIT_JVMTI_ERROR); -+ -+ // hotspot calls os:abort() so we should never reach code below, -+ // but guard against possible hotspot changes -+ -+ // Last chance to die, this kills the entire process. -+ forceExit(EXIT_JVMTI_ERROR); - } -diff -r 13411144d46b -r f4c9545cd8a5 src/share/back/log_messages.c ---- openjdk/jdk/src/share/back/log_messages.c Wed Jun 18 03:29:58 2014 -0700 -+++ openjdk/jdk/src/share/back/log_messages.c Thu Aug 28 05:20:02 2014 -0700 -@@ -230,7 +230,7 @@ - - /* Finish up logging, flush output to the logfile. */ - void --finish_logging(int exit_code) -+finish_logging() - { - #ifdef JDWP_LOGGING - MUTEX_LOCK(my_mutex); -diff -r 13411144d46b -r f4c9545cd8a5 src/share/back/log_messages.h ---- openjdk/jdk/src/share/back/log_messages.h Wed Jun 18 03:29:58 2014 -0700 -+++ openjdk/jdk/src/share/back/log_messages.h Thu Aug 28 05:20:02 2014 -0700 -@@ -29,7 +29,7 @@ - /* LOG: Must be called like: LOG_category(("anything")) or LOG_category((format,args)) */ - - void setup_logging(const char *, unsigned); --void finish_logging(int); -+void finish_logging(); - - #define LOG_NULL ((void)0) - diff --git a/SOURCES/8154210.patch b/SOURCES/8154210.patch deleted file mode 100644 index 51b8138..0000000 --- a/SOURCES/8154210.patch +++ /dev/null @@ -1,47 +0,0 @@ -# HG changeset patch -# User aph -# Date 1461121375 -3600 -# Wed Apr 20 04:02:55 2016 +0100 -# Node ID 5605c859f0ec47d6f507cc83e783554a4210ccf6 -# Parent 7458e5178c8646a9b4f76ac3d13b222abed3f16f -8154210: Zero: Better byte behaviour -Summary: Complete support for 8132051 on Zero and fix failure on 64-bit big-endian systems -Reviewed-by: andrew, chrisphi - -diff -r 7458e5178c86 -r 5605c859f0ec src/cpu/zero/vm/cppInterpreter_zero.cpp ---- openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue May 17 03:03:36 2016 +0100 -+++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Wed Apr 20 04:02:55 2016 +0100 -@@ -220,9 +220,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(method->result_type(), res); -+ BasicType t = method->result_type(); -+ if (is_subword_type(t)) { -+ res_jint = (jint)narrow(t, res_jint); -+ } - } - stack->push(res); - } -diff -r 7458e5178c86 -r 5605c859f0ec src/share/vm/interpreter/bytecodeInterpreter.cpp ---- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Tue May 17 03:03:36 2016 +0100 -+++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Wed Apr 20 04:02:55 2016 +0100 -@@ -593,8 +593,9 @@ - /* 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, -+/* 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, diff --git a/SOURCES/8158260-pr2991-rh1341258.patch b/SOURCES/8158260-pr2991-rh1341258.patch deleted file mode 100644 index dae9509..0000000 --- a/SOURCES/8158260-pr2991-rh1341258.patch +++ /dev/null @@ -1,32 +0,0 @@ -# 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/SOURCES/8159244-pr3074.patch b/SOURCES/8159244-pr3074.patch deleted file mode 100644 index 94ba21b..0000000 --- a/SOURCES/8159244-pr3074.patch +++ /dev/null @@ -1,115 +0,0 @@ -# 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/SOURCES/java-1.8.0-openjdk-size_t.patch b/SOURCES/java-1.8.0-openjdk-size_t.patch index c9c6b97..6e0d762 100644 --- a/SOURCES/java-1.8.0-openjdk-size_t.patch +++ b/SOURCES/java-1.8.0-openjdk-size_t.patch @@ -1,7 +1,7 @@ -diff -up jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.size_t jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -2659,7 +2659,7 @@ void CFLS_LAB::get_from_global_pool(size +diff --git a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp +@@ -2659,7 +2659,7 @@ if (ResizeOldPLAB && CMSOldPLABResizeQuicker) { size_t multiple = _num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks); n_blks += CMSOldPLABReactivityFactor*multiple*n_blks; @@ -10,10 +10,10 @@ diff -up jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compact } assert(n_blks > 0, "Error"); _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl); -diff -up jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.size_t jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -957,7 +957,7 @@ void ConcurrentMarkSweepGeneration::comp +diff --git a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +@@ -957,7 +957,7 @@ if (free_percentage < desired_free_percentage) { size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); assert(desired_capacity >= capacity(), "invalid expansion size"); @@ -22,7 +22,7 @@ diff -up jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurr if (PrintGCDetails && Verbose) { size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); gclog_or_tty->print_cr("\nFrom compute_new_size: "); -@@ -6575,7 +6575,7 @@ void CMSCollector::reset(bool asynch) { +@@ -6577,7 +6577,7 @@ HeapWord* curAddr = _markBitMap.startWord(); while (curAddr < _markBitMap.endWord()) { size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr); @@ -31,7 +31,7 @@ diff -up jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurr _markBitMap.clear_large_range(chunk); if (ConcurrentMarkSweepThread::should_yield() && !foregroundGCIsActive() && -@@ -6873,7 +6873,7 @@ void CMSMarkStack::expand() { +@@ -6875,7 +6875,7 @@ return; } // Double capacity if possible @@ -40,10 +40,10 @@ diff -up jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurr // Do not give up existing stack until we have managed to // get the double capacity that we desired. ReservedSpace rs(ReservedSpace::allocation_align_size_up( -diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.size_t jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -3902,7 +3902,7 @@ void CMTask::drain_local_queue(bool part +diff --git a/src/share/vm/gc_implementation/g1/concurrentMark.cpp b/src/share/vm/gc_implementation/g1/concurrentMark.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +@@ -3903,7 +3903,7 @@ // of things to do) or totally (at the very end). size_t target_size; if (partially) { @@ -52,7 +52,7 @@ diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.size_ } else { target_size = 0; } -@@ -4728,7 +4728,7 @@ size_t G1PrintRegionLivenessInfoClosure: +@@ -4707,7 +4707,7 @@ // The > 0 check is to deal with the prev and next live bytes which // could be 0. if (*hum_bytes > 0) { @@ -61,10 +61,10 @@ diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.size_ *hum_bytes -= bytes; } return bytes; -diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.size_t jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -1726,7 +1726,7 @@ HeapWord* G1CollectedHeap::expand_and_al +diff --git a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +@@ -1726,7 +1726,7 @@ verify_region_sets_optional(); @@ -73,10 +73,22 @@ diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.size ergo_verbose1(ErgoHeapSizing, "attempt heap expansion", ergo_format_reason("allocation request failed") -diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.size_t jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -38,7 +38,7 @@ G1StringDedupQueue::G1StringDedupQueue() +diff --git a/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp b/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp +@@ -117,7 +117,7 @@ + return reserved_size() - committed_size(); + } + +-size_t G1PageBasedVirtualSpace::addr_to_page_index(char* addr) const { ++uintptr_t G1PageBasedVirtualSpace::addr_to_page_index(char* addr) const { + return (addr - _low_boundary) / _page_size; + } + +diff --git a/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp b/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp +@@ -38,7 +38,7 @@ _cancel(false), _empty(true), _dropped(0) { @@ -85,22 +97,22 @@ diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s _queues = NEW_C_HEAP_ARRAY(G1StringDedupWorkerQueue, _nqueues, mtGC); for (size_t i = 0; i < _nqueues; i++) { new (_queues + i) G1StringDedupWorkerQueue(G1StringDedupWorkerQueue::default_segment_size(), _max_cache_size, _max_size); -diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.size_t jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -110,7 +110,7 @@ public: +diff --git a/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp b/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp +@@ -120,7 +120,7 @@ }; - G1StringDedupEntryCache::G1StringDedupEntryCache() { -- _nlists = MAX2(ParallelGCThreads, (size_t)1); -+ _nlists = MAX2(ParallelGCThreads, (uintx)1); - _lists = PaddedArray::create_unfreeable((uint)_nlists); - } - -diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.size_t jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -109,7 +109,7 @@ void HeapRegion::setup_heap_region_size( + G1StringDedupEntryCache::G1StringDedupEntryCache(size_t max_size) : +- _nlists(MAX2(ParallelGCThreads, (size_t)1)), ++ _nlists(MAX2(ParallelGCThreads, (uintx)1)), + _max_list_length(0), + _cached(PaddedArray::create_unfreeable((uint)_nlists)), + _overflowed(PaddedArray::create_unfreeable((uint)_nlists)) { +diff --git a/src/share/vm/gc_implementation/g1/heapRegion.cpp b/src/share/vm/gc_implementation/g1/heapRegion.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp +@@ -109,7 +109,7 @@ if (FLAG_IS_DEFAULT(G1HeapRegionSize)) { size_t average_heap_size = (initial_heap_size + max_heap_size) / 2; region_size = MAX2(average_heap_size / HeapRegionBounds::target_number(), @@ -109,10 +121,10 @@ diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.size_t jd } int region_size_log = log2_long((jlong) region_size); -diff -up jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.size_t jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -194,7 +194,7 @@ bool ParScanThreadState::take_from_overf +diff --git a/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp b/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp +@@ -194,7 +194,7 @@ const size_t num_overflow_elems = of_stack->size(); const size_t space_available = queue->max_elems() - queue->size(); const size_t num_take_elems = MIN3(space_available / 4, @@ -121,10 +133,10 @@ diff -up jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp num_overflow_elems); // Transfer the most recent num_take_elems from the overflow // stack to our work queue. -diff -up jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.size_t jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -910,8 +910,8 @@ void PSParallelCompact::initialize_space +diff --git a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +@@ -910,8 +910,8 @@ void PSParallelCompact::initialize_dead_wood_limiter() { const size_t max = 100; @@ -135,10 +147,10 @@ diff -up jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallel _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev); DEBUG_ONLY(_dwl_initialized = true;) _dwl_adjustment = normal_distribution(1.0); -diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp ---- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -385,7 +385,7 @@ void TwoGenerationCollectorPolicy::initi +diff --git a/src/share/vm/memory/collectorPolicy.cpp b/src/share/vm/memory/collectorPolicy.cpp +--- openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp ++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp +@@ -385,7 +385,7 @@ uintx calculated_size = NewSize + OldSize; double shrink_factor = (double) MaxHeapSize / calculated_size; uintx smaller_new_size = align_size_down((uintx)(NewSize * shrink_factor), _gen_alignment); @@ -147,7 +159,7 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t jdk8/hotspo _initial_gen0_size = NewSize; // OldSize is already aligned because above we aligned MaxHeapSize to -@@ -433,7 +433,7 @@ void GenCollectorPolicy::initialize_size +@@ -433,7 +433,7 @@ // yield a size that is too small) and bound it by MaxNewSize above. // Ergonomics plays here by previously calculating the desired // NewSize and MaxNewSize. @@ -156,7 +168,7 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t jdk8/hotspo } assert(max_new_size > 0, "All paths should set max_new_size"); -@@ -455,24 +455,23 @@ void GenCollectorPolicy::initialize_size +@@ -455,24 +455,23 @@ // lower limit. _min_gen0_size = NewSize; desired_new_size = NewSize; @@ -186,7 +198,7 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t jdk8/hotspo assert(_min_gen0_size > 0, "Sanity check"); _initial_gen0_size = desired_new_size; -@@ -573,7 +572,7 @@ void TwoGenerationCollectorPolicy::initi +@@ -573,7 +572,7 @@ } else { // It's been explicitly set on the command line. Use the // OldSize and then determine the consequences. @@ -195,10 +207,10 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t jdk8/hotspo _initial_gen1_size = OldSize; // If the user has explicitly set an OldSize that is inconsistent -diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.size_t jdk8/hotspot/src/share/vm/memory/metaspace.cpp ---- jdk8/hotspot/src/share/vm/memory/metaspace.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -1455,7 +1455,7 @@ void MetaspaceGC::initialize() { +diff --git a/src/share/vm/memory/metaspace.cpp b/src/share/vm/memory/metaspace.cpp +--- openjdk/hotspot/src/share/vm/memory/metaspace.cpp ++++ openjdk/hotspot/src/share/vm/memory/metaspace.cpp +@@ -1455,7 +1455,7 @@ void MetaspaceGC::post_initialize() { // Reset the high-water mark once the VM initialization is done. @@ -207,7 +219,7 @@ diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.size_t jdk8/hotspot/src/ } bool MetaspaceGC::can_expand(size_t word_size, bool is_class) { -@@ -1515,7 +1515,7 @@ void MetaspaceGC::compute_new_size() { +@@ -1515,7 +1515,7 @@ (size_t)MIN2(min_tmp, double(max_uintx)); // Don't shrink less than the initial generation size minimum_desired_capacity = MAX2(minimum_desired_capacity, @@ -216,7 +228,7 @@ diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.size_t jdk8/hotspot/src/ if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr("\nMetaspaceGC::compute_new_size: "); -@@ -1573,7 +1573,7 @@ void MetaspaceGC::compute_new_size() { +@@ -1573,7 +1573,7 @@ const double max_tmp = used_after_gc / minimum_used_percentage; size_t maximum_desired_capacity = (size_t)MIN2(max_tmp, double(max_uintx)); maximum_desired_capacity = MAX2(maximum_desired_capacity, @@ -225,7 +237,7 @@ diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.size_t jdk8/hotspot/src/ if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr(" " " maximum_free_percentage: %6.2f" -@@ -3245,7 +3245,7 @@ void Metaspace::global_initialize() { +@@ -3285,7 +3285,7 @@ // on the medium chunk list. The next chunk will be small and progress // from there. This size calculated by -version. _first_class_chunk_word_size = MIN2((size_t)MediumChunk*6, @@ -234,10 +246,10 @@ diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.size_t jdk8/hotspot/src/ _first_class_chunk_word_size = align_word_size_up(_first_class_chunk_word_size); // Arbitrarily set the initial virtual space to a multiple // of the boot class loader size. -diff -up jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.size_t jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp ---- jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -238,13 +238,13 @@ size_t ThreadLocalAllocBuffer::initial_d +diff --git a/src/share/vm/memory/threadLocalAllocBuffer.cpp b/src/share/vm/memory/threadLocalAllocBuffer.cpp +--- openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp ++++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp +@@ -238,13 +238,13 @@ size_t init_sz = 0; if (TLABSize > 0) { @@ -254,10 +266,10 @@ diff -up jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.size_t jdk8 init_sz = align_object_size(init_sz); } init_sz = MIN2(MAX2(init_sz, min_size()), max_size()); -diff -up jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.size_t jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp ---- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2015-06-09 10:21:39.000000000 -0400 -@@ -48,7 +48,7 @@ void ObjArrayKlass::objarray_follow_cont +diff --git a/src/share/vm/oops/objArrayKlass.inline.hpp b/src/share/vm/oops/objArrayKlass.inline.hpp +--- openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp ++++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp +@@ -48,7 +48,7 @@ const size_t beg_index = size_t(index); assert(beg_index < len || len == 0, "index too large"); @@ -266,7 +278,7 @@ diff -up jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.size_t jdk8/hot const size_t end_index = beg_index + stride; T* const base = (T*)a->base(); T* const beg = base + beg_index; -@@ -82,7 +82,7 @@ void ObjArrayKlass::objarray_follow_cont +@@ -82,7 +82,7 @@ const size_t beg_index = size_t(index); assert(beg_index < len || len == 0, "index too large"); @@ -275,10 +287,10 @@ diff -up jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.size_t jdk8/hot const size_t end_index = beg_index + stride; T* const base = (T*)a->base(); T* const beg = base + beg_index; -diff -up jdk8/hotspot/src/share/vm/runtime/arguments.cpp.size_t jdk8/hotspot/src/share/vm/runtime/arguments.cpp ---- jdk8/hotspot/src/share/vm/runtime/arguments.cpp.size_t 2015-05-19 12:16:26.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2015-06-09 10:21:39.000000000 -0400 -@@ -1277,7 +1277,7 @@ void Arguments::set_cms_and_parnew_gc_fl +diff --git a/src/share/vm/runtime/arguments.cpp b/src/share/vm/runtime/arguments.cpp +--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp ++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp +@@ -1283,7 +1283,7 @@ // NewSize was set on the command line and it is larger than // preferred_max_new_size. if (!FLAG_IS_DEFAULT(NewSize)) { // NewSize explicitly set at command-line @@ -287,7 +299,7 @@ diff -up jdk8/hotspot/src/share/vm/runtime/arguments.cpp.size_t jdk8/hotspot/src } else { FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size); } -@@ -1302,8 +1302,8 @@ void Arguments::set_cms_and_parnew_gc_fl +@@ -1308,8 +1308,8 @@ // Unless explicitly requested otherwise, make young gen // at least min_new, and at most preferred_max_new_size. if (FLAG_IS_DEFAULT(NewSize)) { @@ -298,7 +310,7 @@ diff -up jdk8/hotspot/src/share/vm/runtime/arguments.cpp.size_t jdk8/hotspot/src if (PrintGCDetails && Verbose) { // Too early to use gclog_or_tty tty->print_cr("CMS ergo set NewSize: " SIZE_FORMAT, NewSize); -@@ -1313,7 +1313,7 @@ void Arguments::set_cms_and_parnew_gc_fl +@@ -1319,7 +1319,7 @@ // so it's NewRatio x of NewSize. if (FLAG_IS_DEFAULT(OldSize)) { if (max_heap > NewSize) { @@ -307,15 +319,3 @@ diff -up jdk8/hotspot/src/share/vm/runtime/arguments.cpp.size_t jdk8/hotspot/src if (PrintGCDetails && Verbose) { // Too early to use gclog_or_tty tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize); -diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp.size_t jdk8/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp ---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp.size_t 2015-06-09 10:35:04.000000000 -0400 -+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp 2015-06-09 10:33:21.000000000 -0400 -@@ -117,7 +117,7 @@ size_t G1PageBasedVirtualSpace::uncommit - return reserved_size() - committed_size(); - } - --size_t G1PageBasedVirtualSpace::addr_to_page_index(char* addr) const { -+uintptr_t G1PageBasedVirtualSpace::addr_to_page_index(char* addr) const { - return (addr - _low_boundary) / _page_size; - } - diff --git a/SOURCES/pr1834-rh1022017.patch b/SOURCES/pr1834-rh1022017.patch index 1b3c903..3585029 100644 --- a/SOURCES/pr1834-rh1022017.patch +++ b/SOURCES/pr1834-rh1022017.patch @@ -1,44 +1,28 @@ -diff -r a5c3d9643077 src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java ---- openjdk/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Tue Feb 10 16:24:28 2015 +0000 -+++ openjdk/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Thu May 14 04:01:02 2015 +0100 -@@ -37,25 +37,11 @@ - // the extension value to send in the ClientHello message - static final SupportedEllipticCurvesExtension DEFAULT; - -- private static final boolean fips; -- - static { -- int[] ids; -- fips = SunJSSE.isFIPS(); -- if (fips == false) { -- ids = new int[] { -- // NIST curves first -- // prefer NIST P-256, rest in order of increasing key length -- 23, 1, 3, 19, 21, 6, 7, 9, 10, 24, 11, 12, 25, 13, 14, -- // non-NIST curves -- 15, 16, 17, 2, 18, 4, 5, 20, 8, 22, -- }; -- } else { -- ids = new int[] { -- // same as above, but allow only NIST curves in FIPS mode -- 23, 1, 3, 19, 21, 6, 7, 9, 10, 24, 11, 12, 25, 13, 14, -- }; -- } -+ int[] ids = new int[] { -+ // NSS currently only supports these three NIST curves -+ 23, 24, 25 -+ }; - DEFAULT = new SupportedEllipticCurvesExtension(ids); - } - -@@ -150,10 +136,6 @@ - if ((index <= 0) || (index >= NAMED_CURVE_OID_TABLE.length)) { - return false; - } -- if (fips == false) { -- // in non-FIPS mode, we support all valid indices -- return true; -- } - return DEFAULT.contains(index); - } +diff --git a/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java b/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java +--- openjdk/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java ++++ openjdk/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java +@@ -160,20 +160,10 @@ + } + } + } else { // default curves +- int[] ids; +- if (requireFips) { +- ids = new int[] { +- // only NIST curves in FIPS mode +- 23, 24, 25, 9, 10, 11, 12, 13, 14, +- }; +- } else { +- ids = new int[] { +- // NIST curves first +- 23, 24, 25, 9, 10, 11, 12, 13, 14, +- // non-NIST curves +- 22, +- }; +- } ++ int[] ids = new int[] { ++ // NSS currently only supports these three NIST curves ++ 23, 24, 25 ++ }; + idList = new ArrayList<>(ids.length); + for (int curveId : ids) { diff --git a/SOURCES/rh1163501.patch b/SOURCES/rh1163501.patch index 51cd4b9..851529f 100644 --- a/SOURCES/rh1163501.patch +++ b/SOURCES/rh1163501.patch @@ -1,65 +1,54 @@ ---- jdk8/jdk/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java Tue Mar 17 00:09:12 2015 +0300 -+++ jdk8/jdk/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java Wed Apr 08 14:25:54 2015 +0100 -@@ -1,5 +1,6 @@ +diff --git a/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java b/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java +--- openjdk/jdk/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java ++++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java +@@ -1,5 +1,6 @@ /* * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014 Red Hat Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -80,10 +81,10 @@ - * @param random the source of randomness - */ - public void initialize(int keysize, SecureRandom random) { -- if ((keysize < 512) || (keysize > 2048) || (keysize % 64 != 0)) { -+ if ((keysize < 512) || (keysize > 4096) || (keysize % 64 != 0)) { - throw new InvalidParameterException("Keysize must be multiple " - + "of 64, and can only range " -- + "from 512 to 2048 " -+ + "from 512 to 4096 " - + "(inclusive)"); - } - this.pSize = keysize; -@@ -115,11 +116,11 @@ +@@ -74,10 +75,10 @@ + private static void checkKeySize(int keysize) + throws InvalidParameterException { - params = (DHParameterSpec)algParams; - pSize = params.getP().bitLength(); -- if ((pSize < 512) || (pSize > 2048) || -+ if ((pSize < 512) || (pSize > 4096) || - (pSize % 64 != 0)) { - throw new InvalidAlgorithmParameterException - ("Prime size must be multiple of 64, and can only range " -- + "from 512 to 2048 (inclusive)"); -+ + "from 512 to 4096 (inclusive)"); +- if ((keysize < 512) || (keysize > 2048) || ((keysize & 0x3F) != 0)) { ++ if ((keysize < 512) || (keysize > 4096) || ((keysize & 0x3F) != 0)) { + throw new InvalidParameterException( + "DH key size must be multiple of 64, and can only range " + +- "from 512 to 2048 (inclusive). " + ++ "from 512 to 4096 (inclusive). " + + "The specific key size " + keysize + " is not supported"); } - - // exponent size is optional, could be 0 ---- jdk8/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java Tue Mar 17 00:09:12 2015 +0300 -+++ jdk8/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java Wed Apr 08 14:25:54 2015 +0100 -@@ -1,5 +1,6 @@ + } +diff --git a/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java b/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java +--- openjdk/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java ++++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java +@@ -1,5 +1,6 @@ /* * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014 Red Hat Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -60,11 +61,11 @@ +@@ -60,11 +61,11 @@ private static void checkKeySize(int keysize) - throws InvalidAlgorithmParameterException { -- if ((keysize != 2048) && -+ if ((keysize != 2048) && (keysize != 4096) && + throws InvalidParameterException { +- if ((keysize != 2048) && ++ if ((keysize != 2048) && (keysize != 4096) && ((keysize < 512) || (keysize > 1024) || (keysize % 64 != 0))) { - throw new InvalidAlgorithmParameterException( - "Keysize must be multiple of 64 ranging from " -- + "512 to 1024 (inclusive), or 2048"); -+ + "512 to 1024 (inclusive), or 2048, or 4096"); + throw new InvalidParameterException( + "DH key size must be multiple of 64 and range " + +- "from 512 to 1024 (inclusive), or 2048. " + ++ "from 512 to 1024 (inclusive), or 2048, or 4096. " + + "The specific key size " + keysize + " is not supported"); } } - ---- jdk8/jdk/src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java Tue Mar 17 00:09:12 2015 +0300 -+++ jdk8/jdk/src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java Wed Apr 08 14:25:54 2015 +0100 -@@ -278,11 +278,11 @@ +diff --git a/src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java b/src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java +--- openjdk/jdk/src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java ++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java +@@ -285,11 +285,11 @@ // this restriction is in the spec for DSA // since we currently use DSA parameters for DH as well, // it also applies to DH if no parameters are specified @@ -68,21 +57,22 @@ ((keySize > 1024) || ((keySize & 0x3f) != 0))) { throw new InvalidAlgorithmParameterException(algorithm + " key must be multiples of 64 if less than 1024 bits" + -- ", or 2048 bits"); -+ ", or 2048 bits, or 4096 bits"); +- ", or 2048 bits. " + ++ ", or 2048 bits, or 4096 bits. " + + "The specific key size " + + keySize + " is not supported"); } - } - } ---- jdk8/jdk/test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java Tue Mar 17 00:09:12 2015 +0300 -+++ jdk8/jdk/test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java Wed Apr 08 14:25:54 2015 +0100 -@@ -1,5 +1,6 @@ +diff --git a/test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java b/test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java +--- openjdk/jdk/test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java ++++ openjdk/jdk/test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java +@@ -1,5 +1,6 @@ /* * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014 Red Hat Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -58,7 +59,7 @@ +@@ -58,7 +59,7 @@ */ private enum Sizes { two56(256), three84(384), five12(512), seven68(768), ten24(1024), @@ -91,7 +81,7 @@ private final int intSize; private final BigInteger bigIntValue; -@@ -130,6 +131,19 @@ +@@ -130,6 +131,19 @@ kp = kpg.generateKeyPair(); checkKeyPair(kp, Sizes.twenty48, Sizes.five12); @@ -111,4 +101,3 @@ System.out.println("OK"); } - diff --git a/SPECS/java-1.8.0-openjdk.spec b/SPECS/java-1.8.0-openjdk.spec index ab1e0ea..7a9373a 100644 --- a/SPECS/java-1.8.0-openjdk.spec +++ b/SPECS/java-1.8.0-openjdk.spec @@ -157,7 +157,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-jdk8u111-b15 +%global revision aarch64-jdk8u121-b13 # 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 @@ -242,7 +242,9 @@ if [ "$1" -gt 1 ]; then "${sum}" = '321342219bb130d238ff144b9e5dbfc1' -o \\ "${sum}" = '134a37a84983b620f4d8d51a550c0c38' -o \\ "${sum}" = '5ea976e209d0d0b5b6ab148416123e02' -o \\ - "${sum}" = '5ab4c77cf14fbd7f7ee6f51a7a73d88c' ]; then + "${sum}" = '5ab4c77cf14fbd7f7ee6f51a7a73d88c' -o \\ + "${sum}" = 'b727442b4ac0e3b8a26ec9741ad463e5' -o \\ + "${sum}" = 'a59c6d96aeae1303fb8ba85e97588e9d' ]; then if [ -f "${javasecurity}.rpmnew" ]; then mv -f "${javasecurity}.rpmnew" "${javasecurity}" fi @@ -782,7 +784,7 @@ OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release} Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 2.%{buildver}%{?dist} +Release: 0.%{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 @@ -802,7 +804,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-jdk8u111-b15 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION} +# VERSION=aarch64-jdk8u121-b13 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 @@ -908,20 +910,6 @@ Patch526: 6260348-pr3066.patch # S8162384, PR3122, RH1358661: Performance regression: bimorphic inlining may be bypassed by type speculation Patch532: 8162384-pr3122-rh1358661.patch -# Patches upstream and appearing in 8u111 -# 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 -Patch521: 8044762-pr2960.patch -# S8049226, PR2960: com/sun/jdi/OptionTest.java test times out again -Patch522: 8049226-pr2960.patch -# 8154210: Zero: Better byte behaviour -Patch606: 8154210.patch -# S8158260, PR2991, RH1341258: JVM on PPC64 LE crashes due to an illegal instruction in JITed code -Patch524: 8158260-pr2991-rh1341258.patch - # Patches ineligible for 8u # 8043805: Allow using a system-installed libjpeg Patch201: system-libjpeg.patch @@ -961,7 +949,13 @@ BuildRequires: nss-devel BuildRequires: pkgconfig BuildRequires: xorg-x11-proto-devel BuildRequires: zip +# Use OpenJDK 7 where available (on RHEL) to avoid +# having to use the rhel-7.x-java-unsafe-candidate hack +%if 0%{?rhel} +BuildRequires: java-1.7.0-openjdk-devel +%else BuildRequires: java-1.8.0-openjdk-devel +%endif # Zero-assembler build requirement. %ifnarch %{jit_arches} BuildRequires: libffi-devel @@ -1223,10 +1217,8 @@ sh %{SOURCE12} %patch103 # ppc64le fixes -%patch524 # Zero fixes. -%patch606 %patch603 %patch601 @@ -1247,12 +1239,9 @@ sh %{SOURCE12} %patch517 %patch518 %patch400 -%patch521 -%patch522 %patch523 %patch525 %patch526 -%patch527 %patch528 %patch532 %patch533 @@ -1854,6 +1843,31 @@ require "copy_jdk_configs.lua" %endif %changelog +* Mon Jan 16 2017 Andrew Hughes - 1:1.8.0.121-0.b13 +- Update to aarch64-jdk8u121-b13. +- Add MD5 checksum for the new java.security file (EC < 224, DSA < 1024 restricted) +- Update PR1834/RH1022017 fix to reduce curves reported by SSL to apply against u121. +- Resolves: rhbz#1410612 + +* Sun Jan 15 2017 Andrew Hughes - 1:1.8.0.112-0.b16 +- Update to aarch64-jdk8u112-b16. +- Drop upstreamed patches for 8044762, 8049226, 8154210, 8158260 and 8160122. +- Re-generate size_t and key size (RH1163501) patches against u112. +- Resolves: rhbz#1410612 + +* Thu Jan 12 2017 Andrew Hughes - 1:1.8.0.111-4.b18 +- Use java-1.7.0-openjdk to bootstrap on RHEL to allow us to use main build target +- Resolves: rhbz#1410612 + +* Mon Jan 09 2017 Andrew Hughes - 1:1.8.0.111-4.b18 +- Update to aarch64-jdk8u111-b18, synced with upstream u111, S8170873 and new AArch64 fixes +- Replace our correct version of 8159244 with the amendment to the 8u version from 8160122. +- Resolves: rhbz#1410612 + +* Mon Nov 07 2016 Andrew Hughes - 1:1.8.0.111-3.b15 +- Add MD5 checksum from RHEL 7.2 security update so the 7.3 one overwrites it. +- Resolves: rhbz#1382736 + * Mon Oct 10 2016 Andrew Hughes - 1:1.8.0.111-2.b15 - Turn debug builds on for all JIT architectures. Always AssumeMP on RHEL. - Resolves: rhbz#1382736