The package rpms/java-1.8.0-openjdk-aarch32.git has added or updated architecture specific
content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-aarch32.git/co....
Change:
+%ifarch x86_64 %{ix86}
Thanks.
Full change:
============
commit 296ea8e219eaad9d94091b44c737404d9958a1e8
Author: Alex Kashchenko <akashche(a)redhat.com>
Date: Fri Nov 17 21:04:10 2017 +0000
8u152 update
diff --git a/.gitignore b/.gitignore
index 5d0305e..2406800 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@
/aarch32-port-jdk8u-jdk8u131-b12-aarch32-170420.tar.xz
/systemtap-tapset-3.4.0pre01.tar.xz
/aarch32-port-jdk8u-jdk8u141-b15-aarch32-170721.tar.xz
+/aarch32-port-jdk8u-jdk8u152-b17-aarch32-171102.tar.xz
diff --git a/8153711-pr3313-rh1284948.patch b/8153711-pr3313-rh1284948.patch
deleted file mode 100644
index b93fa06..0000000
--- a/8153711-pr3313-rh1284948.patch
+++ /dev/null
@@ -1,669 +0,0 @@
-# HG changeset patch
-# User sgehwolf
-# Date 1458555849 -3600
-# Mon Mar 21 11:24:09 2016 +0100
-# Node ID 9f6a0864a734ae3fd0eb198768db7cdee53ba0ed
-# Parent 1179be40f1e3b59a890e96a5a9d3ff6fc18a2846
-8153711, PR3313: [REDO] JDWP: Memory Leak: GlobalRefs never deleted when processing
invokeMethod command
-Summary: Delete global references in invoker_completeInvokeRequest()
-Reviewed-by: sspitsyn, dsamersoff
-
-diff --git a/src/share/back/invoker.c b/src/share/back/invoker.c
---- openjdk/jdk/src/share/back/invoker.c
-+++ openjdk/jdk/src/share/back/invoker.c
-@@ -211,6 +211,62 @@
- return error;
- }
-
-+/*
-+ * Delete saved global references - if any - for:
-+ * - a potentially thrown Exception
-+ * - a returned refernce/array value
-+ * See invoker_doInvoke() and invoke* methods where global references
-+ * are being saved.
-+ */
-+static void
-+deletePotentiallySavedGlobalRefs(JNIEnv *env, InvokeRequest *request)
-+{
-+ /* Delete potentially saved return value */
-+ if ((request->invokeType == INVOKE_CONSTRUCTOR) ||
-+ (returnTypeTag(request->methodSignature) == JDWP_TAG(OBJECT)) ||
-+ (returnTypeTag(request->methodSignature) == JDWP_TAG(ARRAY))) {
-+ if (request->returnValue.l != NULL) {
-+ tossGlobalRef(env, &(request->returnValue.l));
-+ }
-+ }
-+ /* Delete potentially saved exception */
-+ if (request->exception != NULL) {
-+ tossGlobalRef(env, &(request->exception));
-+ }
-+}
-+
-+/*
-+ * Delete global argument references from the request which got put there before a
-+ * invoke request was carried out. See fillInvokeRequest().
-+ */
-+static void
-+deleteGlobalArgumentRefs(JNIEnv *env, InvokeRequest *request)
-+{
-+ void *cursor;
-+ jint argIndex = 0;
-+ jvalue *argument = request->arguments;
-+ jbyte argumentTag = firstArgumentTypeTag(request->methodSignature, &cursor);
-+
-+ if (request->clazz != NULL) {
-+ tossGlobalRef(env, &(request->clazz));
-+ }
-+ if (request->instance != NULL) {
-+ tossGlobalRef(env, &(request->instance));
-+ }
-+ /* Delete global argument references */
-+ while (argIndex < request->argumentCount) {
-+ if ((argumentTag == JDWP_TAG(OBJECT)) ||
-+ (argumentTag == JDWP_TAG(ARRAY))) {
-+ if (argument->l != NULL) {
-+ tossGlobalRef(env, &(argument->l));
-+ }
-+ }
-+ argument++;
-+ argIndex++;
-+ argumentTag = nextArgumentTypeTag(&cursor);
-+ }
-+}
-+
- static jvmtiError
- fillInvokeRequest(JNIEnv *env, InvokeRequest *request,
- jbyte invokeType, jbyte options, jint id,
-@@ -320,6 +376,8 @@
- invokeConstructor(JNIEnv *env, InvokeRequest *request)
- {
- jobject object;
-+
-+ JDI_ASSERT_MSG(request->clazz, "Request clazz null");
- object = JNI_FUNC_PTR(env,NewObjectA)(env, request->clazz,
- request->method,
- request->arguments);
-@@ -336,6 +394,7 @@
- case JDWP_TAG(OBJECT):
- case JDWP_TAG(ARRAY): {
- jobject object;
-+ JDI_ASSERT_MSG(request->clazz, "Request clazz null");
- object = JNI_FUNC_PTR(env,CallStaticObjectMethodA)(env,
- request->clazz,
- request->method,
-@@ -424,6 +483,7 @@
- case JDWP_TAG(OBJECT):
- case JDWP_TAG(ARRAY): {
- jobject object;
-+ JDI_ASSERT_MSG(request->instance, "Request instance null");
- object = JNI_FUNC_PTR(env,CallObjectMethodA)(env,
- request->instance,
- request->method,
-@@ -511,6 +571,8 @@
- case JDWP_TAG(OBJECT):
- case JDWP_TAG(ARRAY): {
- jobject object;
-+ JDI_ASSERT_MSG(request->clazz, "Request clazz null");
-+ JDI_ASSERT_MSG(request->instance, "Request instance null");
- object = JNI_FUNC_PTR(env,CallNonvirtualObjectMethodA)(env,
- request->instance,
- request->clazz,
-@@ -607,6 +669,8 @@
- JNIEnv *env;
- jboolean startNow;
- InvokeRequest *request;
-+ jbyte options;
-+ jbyte invokeType;
-
- JDI_ASSERT(thread);
-
-@@ -623,6 +687,9 @@
- if (startNow) {
- request->started = JNI_TRUE;
- }
-+ options = request->options;
-+ invokeType = request->invokeType;
-+
- debugMonitorExit(invokerLock);
-
- if (!startNow) {
-@@ -637,7 +704,7 @@
-
- JNI_FUNC_PTR(env,ExceptionClear)(env);
-
-- switch (request->invokeType) {
-+ switch (invokeType) {
- case INVOKE_CONSTRUCTOR:
- invokeConstructor(env, request);
- break;
-@@ -645,7 +712,7 @@
- invokeStatic(env, request);
- break;
- case INVOKE_INSTANCE:
-- if (request->options & JDWP_INVOKE_OPTIONS(NONVIRTUAL) ) {
-+ if (options & JDWP_INVOKE_OPTIONS(NONVIRTUAL) ) {
- invokeNonvirtual(env, request);
- } else {
- invokeVirtual(env, request);
-@@ -723,12 +790,23 @@
- }
-
- /*
-+ * At this time, there's no need to retain global references on
-+ * arguments since the reply is processed. No one will deal with
-+ * this request ID anymore, so we must call deleteGlobalArgumentRefs().
-+ *
-+ * We cannot delete saved exception or return value references
-+ * since otherwise a deleted handle would escape when writing
-+ * the response to the stream. Instead, we clean those refs up
-+ * after writing the respone.
-+ */
-+ deleteGlobalArgumentRefs(env, request);
-+
-+ /*
- * Give up the lock before I/O operation
- */
- debugMonitorExit(invokerLock);
- eventHandler_unlock();
-
--
- if (!detached) {
- outStream_initReply(&out, id);
- (void)outStream_writeValue(env, &out, tag, returnValue);
-@@ -736,6 +814,16 @@
- (void)outStream_writeObjectRef(env, &out, exc);
- outStream_sendReply(&out);
- }
-+
-+ /*
-+ * Delete potentially saved global references of return value
-+ * and exception
-+ */
-+ eventHandler_lock(); // for proper lock order
-+ debugMonitorEnter(invokerLock);
-+ deletePotentiallySavedGlobalRefs(env, request);
-+ debugMonitorExit(invokerLock);
-+ eventHandler_unlock();
- }
-
- jboolean
-diff --git a/test/com/sun/jdi/oom/@debuggeeVMOptions
b/test/com/sun/jdi/oom/@debuggeeVMOptions
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/test/com/sun/jdi/oom/@debuggeeVMOptions
-@@ -0,0 +1,1 @@
-+-Xmx40m
-\ No newline at end of file
-diff --git a/test/com/sun/jdi/oom/OomDebugTest.java
b/test/com/sun/jdi/oom/OomDebugTest.java
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/test/com/sun/jdi/oom/OomDebugTest.java
-@@ -0,0 +1,417 @@
-+/*
-+ * Copyright (c) 2016 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
-+ * 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.
-+ */
-+
-+/**
-+ * @test
-+ * @bug 8153711
-+ * @summary JDWP: Memory Leak (global references not deleted after invokeMethod).
-+ *
-+ * @author Severin Gehwolf <sgehwolf(a)redhat.com>
-+ *
-+ * @library ..
-+ * @run build TestScaffold VMConnection TargetListener TargetAdapter
-+ * @run compile -g OomDebugTest.java
-+ * @run shell OomDebugTestSetup.sh
-+ * @run main OomDebugTest OomDebugTestTarget test1
-+ * @run main OomDebugTest OomDebugTestTarget test2
-+ * @run main OomDebugTest OomDebugTestTarget test3
-+ * @run main OomDebugTest OomDebugTestTarget test4
-+ * @run main OomDebugTest OomDebugTestTarget test5
-+ */
-+import java.io.File;
-+import java.io.FileInputStream;
-+import java.io.FileNotFoundException;
-+import java.io.FileOutputStream;
-+import java.io.IOException;
-+import java.util.ArrayList;
-+import java.util.Arrays;
-+import java.util.Collections;
-+import java.util.HashSet;
-+import java.util.List;
-+import java.util.Properties;
-+import java.util.Set;
-+
-+import com.sun.jdi.ArrayReference;
-+import com.sun.jdi.ArrayType;
-+import com.sun.jdi.ClassType;
-+import com.sun.jdi.Field;
-+import com.sun.jdi.InvocationException;
-+import com.sun.jdi.Method;
-+import com.sun.jdi.ObjectReference;
-+import com.sun.jdi.ReferenceType;
-+import com.sun.jdi.StackFrame;
-+import com.sun.jdi.VMOutOfMemoryException;
-+import com.sun.jdi.Value;
-+import com.sun.jdi.event.BreakpointEvent;
-+import com.sun.jdi.event.ExceptionEvent;
-+
-+/***************** Target program **********************/
-+
-+class OomDebugTestTarget {
-+
-+ OomDebugTestTarget() {
-+ System.out.println("DEBUG: invoked constructor");
-+ }
-+ static class FooCls {
-+ @SuppressWarnings("unused")
-+ private byte[] bytes = new byte[3000000];
-+ };
-+
-+ FooCls fooCls = new FooCls();
-+ byte[] byteArray = new byte[0];
-+
-+ void testMethod(FooCls foo) {
-+ System.out.println("DEBUG: invoked 'void testMethod(FooCls)', foo
== " + foo);
-+ }
-+
-+ void testPrimitive(byte[] foo) {
-+ System.out.println("DEBUG: invoked 'void testPrimitive(byte[])',
foo == " + foo);
-+ }
-+
-+ byte[] testPrimitiveArrRetval() {
-+ System.out.println("DEBUG: invoked 'byte[]
testPrimitiveArrRetval()'");
-+ return new byte[3000000];
-+ }
-+
-+ FooCls testFooClsRetval() {
-+ System.out.println("DEBUG: invoked 'FooCls
testFooClsRetval()'");
-+ return new FooCls();
-+ }
-+
-+ public void entry() {}
-+
-+ public static void main(String[] args){
-+ System.out.println("DEBUG: OomDebugTestTarget.main");
-+ new OomDebugTestTarget().entry();
-+ }
-+}
-+
-+/***************** Test program ************************/
-+
-+public class OomDebugTest extends TestScaffold {
-+
-+ private static final String[] ALL_TESTS = new String[] {
-+ "test1", "test2", "test3", "test4",
"test5"
-+ };
-+ private static final Set<String> ALL_TESTS_SET = new HashSet<String>();
-+ static {
-+ ALL_TESTS_SET.addAll(Arrays.asList(ALL_TESTS));
-+ }
-+ private static final String TEST_CLASSES =
System.getProperty("test.classes", ".");
-+ private static final File RESULT_FILE = new File(TEST_CLASSES,
"results.properties");
-+ private static final String LAST_TEST = ALL_TESTS[ALL_TESTS.length - 1];
-+ private ReferenceType targetClass;
-+ private ObjectReference thisObject;
-+ private int failedTests;
-+ private final String testMethod;
-+
-+ public OomDebugTest(String[] args) {
-+ super(args);
-+ if (args.length != 2) {
-+ throw new RuntimeException("Wrong number of command-line arguments
specified.");
-+ }
-+ this.testMethod = args[1];
-+ }
-+
-+ @Override
-+ protected void runTests() throws Exception {
-+ try {
-+ addListener(new TargetAdapter() {
-+
-+ @Override
-+ public void exceptionThrown(ExceptionEvent event) {
-+ String name = event.exception().referenceType().name();
-+ System.err.println("DEBUG: Exception thrown in debuggee was:
" + name);
-+ }
-+ });
-+ /*
-+ * Get to the top of entry()
-+ * to determine targetClass and mainThread
-+ */
-+ BreakpointEvent bpe = startTo("OomDebugTestTarget",
"entry", "()V");
-+ targetClass = bpe.location().declaringType();
-+
-+ mainThread = bpe.thread();
-+
-+ StackFrame frame = mainThread.frame(0);
-+ thisObject = frame.thisObject();
-+ java.lang.reflect.Method m = findTestMethod();
-+ m.invoke(this);
-+ } catch (NoSuchMethodException e) {
-+ e.printStackTrace();
-+ failure();
-+ } catch (SecurityException e) {
-+ e.printStackTrace();
-+ failure();
-+ }
-+ /*
-+ * resume the target, listening for events
-+ */
-+ listenUntilVMDisconnect();
-+ }
-+
-+ private java.lang.reflect.Method findTestMethod()
-+ throws NoSuchMethodException, SecurityException {
-+ return OomDebugTest.class.getDeclaredMethod(testMethod);
-+ }
-+
-+ private void failure() {
-+ failedTests++;
-+ }
-+
-+ /*
-+ * Test case: Object reference as method parameter.
-+ */
-+ @SuppressWarnings("unused") // called via reflection
-+ private void test1() throws Exception {
-+ System.out.println("DEBUG: ------------> Running test1");
-+ try {
-+ Field field = targetClass.fieldByName("fooCls");
-+ ClassType clsType = (ClassType)field.type();
-+ Method constructor = getConstructorForClass(clsType);
-+ for (int i = 0; i < 15; i++) {
-+ @SuppressWarnings({ "rawtypes", "unchecked" })
-+ ObjectReference objRef = clsType.newInstance(mainThread,
-+ constructor,
-+ new ArrayList(0),
-+
ObjectReference.INVOKE_NONVIRTUAL);
-+ if (objRef.isCollected()) {
-+ System.out.println("DEBUG: Object got GC'ed before we can
use it. NO-OP.");
-+ continue;
-+ }
-+ invoke("testMethod",
"(LOomDebugTestTarget$FooCls;)V", objRef);
-+ }
-+ } catch (InvocationException e) {
-+ handleFailure(e);
-+ }
-+ }
-+
-+ /*
-+ * Test case: Array reference as method parameter.
-+ */
-+ @SuppressWarnings("unused") // called via reflection
-+ private void test2() throws Exception {
-+ System.out.println("DEBUG: ------------> Running test2");
-+ try {
-+ Field field = targetClass.fieldByName("byteArray");
-+ ArrayType arrType = (ArrayType)field.type();
-+
-+ for (int i = 0; i < 15; i++) {
-+ ArrayReference byteArrayVal = arrType.newInstance(3000000);
-+ if (byteArrayVal.isCollected()) {
-+ System.out.println("DEBUG: Object got GC'ed before we can
use it. NO-OP.");
-+ continue;
-+ }
-+ invoke("testPrimitive", "([B)V", byteArrayVal);
-+ }
-+ } catch (VMOutOfMemoryException e) {
-+ defaultHandleOOMFailure(e);
-+ }
-+ }
-+
-+ /*
-+ * Test case: Array reference as return value.
-+ */
-+ @SuppressWarnings("unused") // called via reflection
-+ private void test3() throws Exception {
-+ System.out.println("DEBUG: ------------> Running test3");
-+ try {
-+ for (int i = 0; i < 15; i++) {
-+ invoke("testPrimitiveArrRetval",
-+ "()[B",
-+ Collections.EMPTY_LIST,
-+ vm().mirrorOfVoid());
-+ }
-+ } catch (InvocationException e) {
-+ handleFailure(e);
-+ }
-+ }
-+
-+ /*
-+ * Test case: Object reference as return value.
-+ */
-+ @SuppressWarnings("unused") // called via reflection
-+ private void test4() throws Exception {
-+ System.out.println("DEBUG: ------------> Running test4");
-+ try {
-+ for (int i = 0; i < 15; i++) {
-+ invoke("testFooClsRetval",
-+ "()LOomDebugTestTarget$FooCls;",
-+ Collections.EMPTY_LIST,
-+ vm().mirrorOfVoid());
-+ }
-+ } catch (InvocationException e) {
-+ handleFailure(e);
-+ }
-+ }
-+
-+ /*
-+ * Test case: Constructor
-+ */
-+ @SuppressWarnings({ "unused", "unchecked", "rawtypes"
}) // called via reflection
-+ private void test5() throws Exception {
-+ System.out.println("DEBUG: ------------> Running test5");
-+ try {
-+ ClassType type = (ClassType)thisObject.type();
-+ for (int i = 0; i < 15; i++) {
-+ type.newInstance(mainThread,
-+ findMethod(targetClass, "<init>",
"()V"),
-+ new ArrayList(0),
-+ ObjectReference.INVOKE_NONVIRTUAL);
-+ }
-+ } catch (InvocationException e) {
-+ handleFailure(e);
-+ }
-+ }
-+
-+ private Method getConstructorForClass(ClassType clsType) {
-+ List<Method> methods = clsType.methodsByName("<init>");
-+ if (methods.size() != 1) {
-+ throw new RuntimeException("FAIL. Expected only one, the default,
constructor");
-+ }
-+ return methods.get(0);
-+ }
-+
-+ private void handleFailure(InvocationException e) {
-+ // There is no good way to see the OOME diagnostic message in the target since
the
-+ // TestScaffold might throw an exception while trying to print the stack trace.
I.e
-+ // it might get a a VMDisconnectedException before the stack trace printing
finishes.
-+ System.err.println("FAILURE: InvocationException thrown. Trying to
determine cause...");
-+ defaultHandleOOMFailure(e);
-+ }
-+
-+ private void defaultHandleOOMFailure(Exception e) {
-+ e.printStackTrace();
-+ failure();
-+ }
-+
-+ @SuppressWarnings({ "rawtypes", "unchecked" })
-+ void invoke(String methodName, String methodSig, Value value)
-+ throws Exception {
-+ List args = new ArrayList(1);
-+ args.add(value);
-+ invoke(methodName, methodSig, args, value);
-+ }
-+
-+ void invoke(String methodName,
-+ String methodSig,
-+ @SuppressWarnings("rawtypes") List args,
-+ Value value) throws Exception {
-+ Method method = findMethod(targetClass, methodName, methodSig);
-+ if ( method == null) {
-+ failure("FAILED: Can't find method: "
-+ + methodName + " for class = " + targetClass);
-+ return;
-+ }
-+ invoke(method, args, value);
-+ }
-+
-+ @SuppressWarnings({ "rawtypes", "unchecked" })
-+ void invoke(Method method, List args, Value value) throws Exception {
-+ thisObject.invokeMethod(mainThread, method, args, 0);
-+ System.out.println("DEBUG: Done invoking method via debugger.");
-+ }
-+
-+ Value fieldValue(String fieldName) {
-+ Field field = targetClass.fieldByName(fieldName);
-+ return thisObject.getValue(field);
-+ }
-+
-+ // Determine the pass/fail status on some heuristic and don't fail the
-+ // test if < 3 of the total number of tests (currently 5) fail. This also
-+ // has the nice side effect that all tests are first attempted and only
-+ // all tests ran an overall pass/fail status is determined.
-+ private static void determineOverallTestStatus(OomDebugTest oomTest)
-+ throws IOException, FileNotFoundException {
-+ Properties resultProps = new Properties();
-+ if (!RESULT_FILE.exists()) {
-+ RESULT_FILE.createNewFile();
-+ }
-+ FileInputStream fin = null;
-+ try {
-+ fin = new FileInputStream(RESULT_FILE);
-+ resultProps.load(fin);
-+ resultProps.put(oomTest.testMethod,
-+ Integer.toString(oomTest.failedTests));
-+ } finally {
-+ if (fin != null) {
-+ fin.close();
-+ }
-+ }
-+ System.out.println("DEBUG: Finished running test '"
-+ + oomTest.testMethod + "'.");
-+ if (LAST_TEST.equals(oomTest.testMethod)) {
-+ System.out.println("DEBUG: Determining overall test status.");
-+ Set<String> actualTestsRun = new HashSet<String>();
-+ int totalTests = ALL_TESTS.length;
-+ int failedTests = 0;
-+ for (Object key: resultProps.keySet()) {
-+ actualTestsRun.add((String)key);
-+ Object propVal = resultProps.get(key);
-+ int value = Integer.parseInt((String)propVal);
-+ failedTests += value;
-+ }
-+ if (!ALL_TESTS_SET.equals(actualTestsRun)) {
-+ String errorMsg = "Test failed! Expected to run tests '"
-+ + ALL_TESTS_SET + "', but only these were run
'"
-+ + actualTestsRun + "'";
-+ throw new RuntimeException(errorMsg);
-+ }
-+ if (failedTests >= 3) {
-+ String errorMsg = "Test failed. Expected < 3 sub-tests to fail
"
-+ + "for a pass. Got " + failedTests
-+ + " failed tests out of " + totalTests +
".";
-+ throw new RuntimeException(errorMsg);
-+ }
-+ RESULT_FILE.delete();
-+ System.out.println("All " + totalTests + " tests
passed.");
-+ } else {
-+ System.out.println("DEBUG: More tests to run. Continuing.");
-+ FileOutputStream fout = null;
-+ try {
-+ fout = new FileOutputStream(RESULT_FILE);
-+ resultProps.store(fout, "Storing results after test "
-+ + oomTest.testMethod);
-+ } finally {
-+ if (fout != null) {
-+ fout.close();
-+ }
-+ }
-+ }
-+ }
-+
-+ public static void main(String[] args) throws Exception {
-+ System.setProperty("test.vm.opts", "-Xmx40m"); // Set
debuggee VM option
-+ OomDebugTest oomTest = new OomDebugTest(args);
-+ try {
-+ oomTest.startTests();
-+ } catch (Throwable e) {
-+ System.out.println("DEBUG: Got exception for test run. " + e);
-+ e.printStackTrace();
-+ oomTest.failure();
-+ }
-+ determineOverallTestStatus(oomTest);
-+ }
-+
-+}
-diff --git a/test/com/sun/jdi/oom/OomDebugTestSetup.sh
b/test/com/sun/jdi/oom/OomDebugTestSetup.sh
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/test/com/sun/jdi/oom/OomDebugTestSetup.sh
-@@ -0,0 +1,46 @@
-+#!/bin/sh
-+#
-+# Copyright (c) 2016 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
-+# 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.
-+#
-+
-+
-+if [ "${TESTSRC}" = "" ]
-+then
-+ echo "TESTSRC not set. Test cannot execute. Failed."
-+ exit 1
-+fi
-+echo "TESTSRC=${TESTSRC}"
-+
-+if [ "${TESTJAVA}" = "" ]
-+then
-+ echo "TESTJAVA not set. Test cannot execute. Failed."
-+ exit 1
-+fi
-+echo "TESTJAVA=${TESTJAVA}"
-+
-+if [ "${TESTCLASSES}" = "" ]
-+then
-+ echo "TESTCLASSES not set. Test cannot execute. Failed."
-+ exit 1
-+fi
-+
-+cp ${TESTSRC}/@debuggeeVMOptions ${TESTCLASSES}/
diff --git a/8162384-pr3122-rh1358661.patch b/8162384-pr3122-rh1358661.patch
deleted file mode 100644
index ff38413..0000000
--- a/8162384-pr3122-rh1358661.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-# HG changeset patch
-# User roland
-# Date 1469615613 -7200
-# Wed Jul 27 12:33:33 2016 +0200
-# Node ID fd29eff8b797daa41a68394ced7fe80c9e8c96e9
-# Parent ee9bffb3bd390b2ad805c7b59d7d2ab8a68a4367
-8162384, PR3122: Performance regression: bimorphic inlining may be bypassed by type
speculation
-Summary: when speculation fails at a call fallback to profile data at the call site
-Reviewed-by: kvn
-
-diff -r ee9bffb3bd39 -r fd29eff8b797 src/share/vm/opto/doCall.cpp
---- openjdk/hotspot/src/share/vm/opto/doCall.cpp Mon Aug 01 16:33:54 2016 +0100
-+++ openjdk/hotspot/src/share/vm/opto/doCall.cpp Wed Jul 27 12:33:33 2016 +0200
-@@ -205,16 +205,22 @@
-
- int morphism = profile.morphism();
- if (speculative_receiver_type != NULL) {
-- // We have a speculative type, we should be able to resolve
-- // the call. We do that before looking at the profiling at
-- // this invoke because it may lead to bimorphic inlining which
-- // a speculative type should help us avoid.
-- receiver_method = callee->resolve_invoke(jvms->method()->holder(),
-- speculative_receiver_type);
-- if (receiver_method == NULL) {
-+ if (!too_many_traps(caller, bci, Deoptimization::Reason_speculate_class_check))
{
-+ // We have a speculative type, we should be able to resolve
-+ // the call. We do that before looking at the profiling at
-+ // this invoke because it may lead to bimorphic inlining which
-+ // a speculative type should help us avoid.
-+ receiver_method = callee->resolve_invoke(jvms->method()->holder(),
-+ speculative_receiver_type);
-+ if (receiver_method == NULL) {
-+ speculative_receiver_type = NULL;
-+ } else {
-+ morphism = 1;
-+ }
-+ } else {
-+ // speculation failed before. Use profiling at the call
-+ // (could allow bimorphic inlining for instance).
- speculative_receiver_type = NULL;
-- } else {
-- morphism = 1;
- }
- }
- if (receiver_method == NULL &&
-@@ -252,7 +258,7 @@
- Deoptimization::Reason_bimorphic :
- (speculative_receiver_type == NULL ?
Deoptimization::Reason_class_check : Deoptimization::Reason_speculate_class_check);
- if ((morphism == 1 || (morphism == 2 && next_hit_cg != NULL))
&&
-- !too_many_traps(jvms->method(), jvms->bci(), reason)
-+ !too_many_traps(caller, bci, reason)
- ) {
- // Generate uncommon trap for class check failure path
- // in case of monomorphic or bimorphic virtual call site.
diff --git a/8173941-pr3326.patch b/8173941-pr3326.patch
deleted file mode 100644
index 50e74f6..0000000
--- a/8173941-pr3326.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-# HG changeset patch
-# User ysuenaga
-# Date 1487123491 18000
-# Tue Feb 14 20:51:31 2017 -0500
-# Node ID 15922b2f31db4857ec84efdf533c41b19e68030b
-# Parent 652fe741b8f2bfdacba66d772cc89fe7ec6dea66
-8173941, PR3326: SA does not work if executable is DSO
-Reviewed-by: aph, dsamersoff
-
-diff --git a/agent/src/os/linux/elfmacros.h b/agent/src/os/linux/elfmacros.h
---- openjdk/hotspot/agent/src/os/linux/elfmacros.h
-+++ openjdk/hotspot/agent/src/os/linux/elfmacros.h
-@@ -33,6 +33,7 @@
- #define ELF_NHDR Elf64_Nhdr
- #define ELF_DYN Elf64_Dyn
- #define ELF_ADDR Elf64_Addr
-+#define ELF_AUXV Elf64_auxv_t
-
- #define ELF_ST_TYPE ELF64_ST_TYPE
-
-@@ -45,6 +46,7 @@
- #define ELF_NHDR Elf32_Nhdr
- #define ELF_DYN Elf32_Dyn
- #define ELF_ADDR Elf32_Addr
-+#define ELF_AUXV Elf32_auxv_t
-
- #define ELF_ST_TYPE ELF32_ST_TYPE
-
-diff --git a/agent/src/os/linux/ps_core.c b/agent/src/os/linux/ps_core.c
---- openjdk/hotspot/agent/src/os/linux/ps_core.c
-+++ openjdk/hotspot/agent/src/os/linux/ps_core.c
-@@ -642,6 +642,18 @@
- if (core_handle_prstatus(ph, descdata, notep->n_descsz) != true) {
- return false;
- }
-+ } else if (notep->n_type == NT_AUXV) {
-+ // Get first segment from entry point
-+ ELF_AUXV *auxv = (ELF_AUXV *)descdata;
-+ while (auxv->a_type != AT_NULL) {
-+ if (auxv->a_type == AT_ENTRY) {
-+ // Set entry point address to address of dynamic section.
-+ // We will adjust it in read_exec_segments().
-+ ph->core->dynamic_addr = auxv->a_un.a_val;
-+ break;
-+ }
-+ auxv++;
-+ }
- }
- p = descdata + ROUNDUP(notep->n_descsz, 4);
- }
-@@ -826,7 +838,13 @@
-
- // from PT_DYNAMIC we want to read address of first link_map addr
- case PT_DYNAMIC: {
-- ph->core->dynamic_addr = exec_php->p_vaddr;
-+ if (exec_ehdr->e_type == ET_EXEC) {
-+ ph->core->dynamic_addr = exec_php->p_vaddr;
-+ } else { // ET_DYN
-+ // dynamic_addr has entry point of executable.
-+ // Thus we should substract it.
-+ ph->core->dynamic_addr += exec_php->p_vaddr -
exec_ehdr->e_entry;
-+ }
- print_debug("address of _DYNAMIC is 0x%lx\n",
ph->core->dynamic_addr);
- break;
- }
-@@ -1024,8 +1042,9 @@
- goto err;
- }
-
-- if (read_elf_header(ph->core->exec_fd, &exec_ehdr) != true ||
exec_ehdr.e_type != ET_EXEC) {
-- print_debug("executable file is not a valid ELF ET_EXEC file\n");
-+ if (read_elf_header(ph->core->exec_fd, &exec_ehdr) != true ||
-+ ((exec_ehdr.e_type != ET_EXEC) && (exec_ehdr.e_type != ET_DYN))) {
-+ print_debug("executable file is not a valid ELF file\n");
- goto err;
- }
-
diff --git a/8175887-pr3415.patch b/8175887-pr3415.patch
deleted file mode 100644
index 6460f60..0000000
--- a/8175887-pr3415.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-# HG changeset patch
-# User shade
-# Date 1488979372 -3600
-# Wed Mar 08 14:22:52 2017 +0100
-# Node ID 654b7fcb4932d48063f5f1fba0c8994db5e02976
-# Parent 1faf7c17089922f6f72b580253725f2ecb6ba2f8
-8175887, PR3415: C1 value numbering handling of Unsafe.get*Volatile is incorrect
-Reviewed-by: vlivanov
-
-diff --git a/src/share/vm/c1/c1_ValueMap.hpp b/src/share/vm/c1/c1_ValueMap.hpp
---- openjdk/hotspot/src/share/vm/c1/c1_ValueMap.hpp
-+++ openjdk/hotspot/src/share/vm/c1/c1_ValueMap.hpp
-@@ -158,6 +158,12 @@
- void do_UnsafePutRaw (UnsafePutRaw* x) { kill_memory(); }
- void do_UnsafePutObject(UnsafePutObject* x) { kill_memory(); }
- void do_UnsafeGetAndSetObject(UnsafeGetAndSetObject* x) { kill_memory(); }
-+ void do_UnsafeGetRaw (UnsafeGetRaw* x) { /* nothing to do */ }
-+ void do_UnsafeGetObject(UnsafeGetObject* x) {
-+ if (x->is_volatile()) { // the JMM requires this
-+ kill_memory();
-+ }
-+ }
- void do_Intrinsic (Intrinsic* x) { if (!x->preserves_state())
kill_memory(); }
-
- void do_Phi (Phi* x) { /* nothing to do */ }
-@@ -198,8 +204,6 @@
- void do_OsrEntry (OsrEntry* x) { /* nothing to do */ }
- void do_ExceptionObject(ExceptionObject* x) { /* nothing to do */ }
- void do_RoundFP (RoundFP* x) { /* nothing to do */ }
-- void do_UnsafeGetRaw (UnsafeGetRaw* x) { /* nothing to do */ }
-- void do_UnsafeGetObject(UnsafeGetObject* x) { /* nothing to do */ }
- void do_UnsafePrefetchRead (UnsafePrefetchRead* x) { /* nothing to do */ }
- void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) { /* nothing to do */ }
- void do_ProfileCall (ProfileCall* x) { /* nothing to do */ }
-diff --git a/test/compiler/c1/UnsafeVolatileGuardTest.java
b/test/compiler/c1/UnsafeVolatileGuardTest.java
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/test/compiler/c1/UnsafeVolatileGuardTest.java
-@@ -0,0 +1,72 @@
-+/*
-+ * Copyright (c) 2017, Red Hat Inc. All rights reserved.
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * This code is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 only, as
-+ * published by the Free Software Foundation.
-+ *
-+ * This code is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * version 2 for more details (a copy is included in the LICENSE file that
-+ * accompanied this code).
-+ *
-+ * You should have received a copy of the GNU General Public License version
-+ * 2 along with this work; if not, write to the Free Software Foundation,
-+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+ *
-+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-+ * or visit
www.oracle.com if you need additional information or have any
-+ * questions.
-+ */
-+
-+import java.lang.reflect.Field;
-+
-+/**
-+ * @test
-+ * @bug 8175887
-+ * @summary C1 value numbering handling of Unsafe.get*Volatile is incorrect
-+ * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:TieredStopAtLevel=1
UnsafeVolatileGuardTest
-+ */
-+public class UnsafeVolatileGuardTest {
-+ volatile static private int a;
-+ static private int b;
-+
-+ static final sun.misc.Unsafe UNSAFE;
-+
-+ static final Object BASE;
-+ static final long OFFSET;
-+
-+ static {
-+ try {
-+ Field uf = sun.misc.Unsafe.class.getDeclaredField("theUnsafe");
-+ uf.setAccessible(true);
-+ UNSAFE = (sun.misc.Unsafe)uf.get(null);
-+
-+ Field f = UnsafeVolatileGuardTest.class.getDeclaredField("a");
-+ BASE = UNSAFE.staticFieldBase(f);
-+ OFFSET = UNSAFE.staticFieldOffset(f);
-+ } catch (Exception e) {
-+ throw new RuntimeException(e);
-+ }
-+ }
-+
-+ static void test() {
-+ int tt = b; // makes the JVM CSE the value of b
-+
-+ while (UNSAFE.getIntVolatile(BASE, OFFSET) == 0) {} // burn
-+ if (b == 0) {
-+ System.err.println("wrong value of b");
-+ System.exit(1); // fail hard to report the error
-+ }
-+ }
-+
-+ public static void main(String [] args) throws Exception {
-+ for (int i = 0; i < 10; i++) {
-+ new Thread(UnsafeVolatileGuardTest::test).start();
-+ }
-+ b = 1;
-+ a = 1;
-+ }
-+}
-diff --git a/test/compiler/c1/VolatileGuardTest.java
b/test/compiler/c1/VolatileGuardTest.java
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/test/compiler/c1/VolatileGuardTest.java
-@@ -0,0 +1,52 @@
-+/*
-+ * Copyright (c) 2017, Red Hat Inc. 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.
-+ */
-+
-+/**
-+ * @test
-+ * @bug 8175887
-+ * @summary C1 doesn't respect the JMM with volatile field loads
-+ *
-+ * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:TieredStopAtLevel=1
VolatileGuardTest
-+ */
-+public class VolatileGuardTest {
-+ volatile static private int a;
-+ static private int b;
-+
-+ static void test() {
-+ int tt = b; // makes the JVM CSE the value of b
-+
-+ while (a == 0) {} // burn
-+ if (b == 0) {
-+ System.err.println("wrong value of b");
-+ System.exit(1); // fail hard to report the error
-+ }
-+ }
-+
-+ public static void main(String [] args) throws Exception {
-+ for (int i = 0; i < 10; i++) {
-+ new Thread(VolatileGuardTest::test).start();
-+ }
-+ b = 1;
-+ a = 1;
-+ }
-+}
diff --git a/8179084-pr3409-rh1455694.patch b/8179084-pr3409-rh1455694.patch
deleted file mode 100644
index dbc2120..0000000
--- a/8179084-pr3409-rh1455694.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-# HG changeset patch
-# User dholmes
-# Date 1493428477 14400
-# Fri Apr 28 21:14:37 2017 -0400
-# Node ID 2fee74c5547889d9698a2636e0a5170f9e66fb9c
-# Parent 13a04e8df5a3af73794146b930b32556c7cbc5b0
-8179084, PR3409, RH1455694: HotSpot VM fails to start when AggressiveHeap is set
-Reviewed-by: kbarrett, stefank
-
-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
-@@ -3193,8 +3193,6 @@
-
- // Enable parallel GC and adaptive generation sizing
- FLAG_SET_CMDLINE(bool, UseParallelGC, true);
-- FLAG_SET_DEFAULT(ParallelGCThreads,
-- Abstract_VM_Version::parallel_worker_threads());
-
- // Encourage steady state memory management
- FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100);
-diff --git a/test/TEST.groups b/test/TEST.groups
---- openjdk/hotspot/test/TEST.groups
-+++ openjdk/hotspot/test/TEST.groups
-@@ -1,5 +1,5 @@
- #
--# Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
-+# Copyright (c) 2013, 2017, 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
-@@ -164,6 +164,7 @@
- gc/TestGCLogRotationViaJcmd.java \
- gc/g1/TestHumongousAllocInitialMark.java \
- gc/g1/TestHumongousShrinkHeap.java \
-+ gc/arguments/TestAggressiveHeap.java \
- gc/arguments/TestG1HeapRegionSize.java \
- gc/metaspace/TestMetaspaceMemoryPool.java \
- gc/arguments/TestDynMinHeapFreeRatio.java \
-diff --git a/test/gc/arguments/TestAggressiveHeap.java
b/test/gc/arguments/TestAggressiveHeap.java
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/test/gc/arguments/TestAggressiveHeap.java
-@@ -0,0 +1,91 @@
-+/*
-+ * Copyright (c) 2017, 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.
-+ */
-+
-+/*
-+ * @test TestAggressiveHeap
-+ * @key gc
-+ * @bug 8179084
-+ * @summary Test argument processing for -XX:+AggressiveHeap.
-+ * @library /testlibrary
-+ * @run driver TestAggressiveHeap
-+ */
-+
-+import java.lang.management.ManagementFactory;
-+import javax.management.MBeanServer;
-+import javax.management.ObjectName;
-+
-+import com.oracle.java.testlibrary.OutputAnalyzer;
-+import com.oracle.java.testlibrary.ProcessTools;
-+
-+public class TestAggressiveHeap {
-+
-+ public static void main(String args[]) throws Exception {
-+ if (canUseAggressiveHeapOption()) {
-+ testFlag();
-+ }
-+ }
-+
-+ // Note: Not a normal boolean flag; -XX:-AggressiveHeap is invalid.
-+ private static final String option = "-XX:+AggressiveHeap";
-+
-+ // Option requires at least 256M, else error during option processing.
-+ private static final long minMemory = 256 * 1024 * 1024;
-+
-+ // bool UseParallelGC := true {product}
-+ private static final String parallelGCPattern =
-+ " *bool +UseParallelGC *:= *true +\\{product\\}";
-+
-+ private static void testFlag() throws Exception {
-+ ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
-+ option, "-XX:+PrintFlagsFinal", "-version");
-+
-+ OutputAnalyzer output = new OutputAnalyzer(pb.start());
-+
-+ output.shouldHaveExitValue(0);
-+
-+ String value = output.firstMatch(parallelGCPattern);
-+ if (value == null) {
-+ throw new RuntimeException(
-+ option + " didn't set UseParallelGC");
-+ }
-+ }
-+
-+ private static boolean haveRequiredMemory() throws Exception {
-+ MBeanServer server = ManagementFactory.getPlatformMBeanServer();
-+ ObjectName os = new ObjectName("java.lang", "type",
"OperatingSystem");
-+ Object attr = server.getAttribute(os, "TotalPhysicalMemorySize");
-+ String value = attr.toString();
-+ long memory = Long.parseLong(value);
-+ return memory >= minMemory;
-+ }
-+
-+ private static boolean canUseAggressiveHeapOption() throws Exception {
-+ if (!haveRequiredMemory()) {
-+ System.out.println(
-+ "Skipping test of " + option + " : insufficient
memory");
-+ return false;
-+ }
-+ return true;
-+ }
-+}
-+
diff --git a/8181419-pr3413-rh1463144.patch b/8181419-pr3413-rh1463144.patch
deleted file mode 100644
index c2c7fc6..0000000
--- a/8181419-pr3413-rh1463144.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-# HG changeset patch
-# User stuefe
-# Date 1497865921 -7200
-# Mon Jun 19 11:52:01 2017 +0200
-# Node ID ca0c7b2783e0102468218589a062e7ac4736aae2
-# Parent 148a7d6c463ad1726bad8a9e8d5df191314d704b
-8181419, PR3413, RH1463144: Race in jdwp invoker handling may lead to crashes or invalid
results
-Reviewed-by: sspitsyn, sgehwolf, clanger
-
-diff --git a/src/share/back/invoker.c b/src/share/back/invoker.c
---- openjdk/jdk/src/share/back/invoker.c
-+++ openjdk/jdk/src/share/back/invoker.c
-@@ -212,30 +212,6 @@
- }
-
- /*
-- * Delete saved global references - if any - for:
-- * - a potentially thrown Exception
-- * - a returned refernce/array value
-- * See invoker_doInvoke() and invoke* methods where global references
-- * are being saved.
-- */
--static void
--deletePotentiallySavedGlobalRefs(JNIEnv *env, InvokeRequest *request)
--{
-- /* Delete potentially saved return value */
-- if ((request->invokeType == INVOKE_CONSTRUCTOR) ||
-- (returnTypeTag(request->methodSignature) == JDWP_TAG(OBJECT)) ||
-- (returnTypeTag(request->methodSignature) == JDWP_TAG(ARRAY))) {
-- if (request->returnValue.l != NULL) {
-- tossGlobalRef(env, &(request->returnValue.l));
-- }
-- }
-- /* Delete potentially saved exception */
-- if (request->exception != NULL) {
-- tossGlobalRef(env, &(request->exception));
-- }
--}
--
--/*
- * Delete global argument references from the request which got put there before a
- * invoke request was carried out. See fillInvokeRequest().
- */
-@@ -744,6 +720,7 @@
- jint id;
- InvokeRequest *request;
- jboolean detached;
-+ jboolean mustReleaseReturnValue = JNI_FALSE;
-
- JDI_ASSERT(thread);
-
-@@ -787,6 +764,13 @@
- id = request->id;
- exc = request->exception;
- returnValue = request->returnValue;
-+
-+ /* Release return value and exception references, but delay the release
-+ * until after the return packet was sent. */
-+ mustReleaseReturnValue = request->invokeType == INVOKE_CONSTRUCTOR ||
-+ returnTypeTag(request->methodSignature) == JDWP_TAG(OBJECT) ||
-+ returnTypeTag(request->methodSignature) == JDWP_TAG(ARRAY);
-+
- }
-
- /*
-@@ -801,6 +785,12 @@
- */
- deleteGlobalArgumentRefs(env, request);
-
-+ /* From now on, do not access the request structure anymore
-+ * for this request id, because once we give up the invokerLock it may
-+ * be immediately reused by a new invoke request.
-+ */
-+ request = NULL;
-+
- /*
- * Give up the lock before I/O operation
- */
-@@ -821,7 +811,12 @@
- */
- eventHandler_lock(); // for proper lock order
- debugMonitorEnter(invokerLock);
-- deletePotentiallySavedGlobalRefs(env, request);
-+ if (mustReleaseReturnValue && returnValue.l != NULL) {
-+ tossGlobalRef(env, &returnValue.l);
-+ }
-+ if (exc != NULL) {
-+ tossGlobalRef(env, &exc);
-+ }
- debugMonitorExit(invokerLock);
- eventHandler_unlock();
- }
diff --git a/8188030-pr3459-rh1484079.patch b/8188030-pr3459-rh1484079.patch
new file mode 100644
index 0000000..8564c81
--- /dev/null
+++ b/8188030-pr3459-rh1484079.patch
@@ -0,0 +1,21 @@
+# HG changeset patch
+# User neugens
+# Date 1507735508 -3600
+# Wed Oct 11 16:25:08 2017 +0100
+# Node ID 5b91bf11d0f41a6124ffb0fcd8870507b50bd734
+# Parent 7b1a2f967cd8e950fe7dc47d716af13d36239a38
+8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are
present
+Summary: Handle CFF fonts
+Reviewed-by: andrew, prr
+
+diff --git a/src/solaris/native/sun/awt/fontpath.c
b/src/solaris/native/sun/awt/fontpath.c
+--- openjdk/jdk/src/solaris/native/sun/awt/fontpath.c
++++ openjdk/jdk/src/solaris/native/sun/awt/fontpath.c
+@@ -1233,6 +1233,7 @@
+ && (strcmp((char*)fontformat, "TrueType") != 0)
+ #if defined(__linux__) || defined(_AIX)
+ && (strcmp((char*)fontformat, "Type 1") != 0)
++ && (strcmp((char*)fontformat, "CFF") != 0)
+ #endif
+ ) {
+ continue;
diff --git a/java-1.8.0-openjdk-aarch32.spec b/java-1.8.0-openjdk-aarch32.spec
index d856074..7130697 100644
--- a/java-1.8.0-openjdk-aarch32.spec
+++ b/java-1.8.0-openjdk-aarch32.spec
@@ -212,7 +212,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global project aarch32-port
%global repo jdk8u
-%global revision jdk8u144-b01-aarch32-170809
+%global revision jdk8u152-b17-aarch32-171102
# 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
@@ -271,7 +271,6 @@ exit 0
%global post_headless() %{expand:
-
%ifarch %{jit_arches}
# MetaspaceShared::generate_vtable_methods not implemented for PPC JIT
%ifnarch %{power64}
@@ -545,6 +544,15 @@ exit 0
%global files_jre() %{expand:
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
%{_datadir}/applications/*policytool%1.desktop
+%{_jvmdir}/%{sdkdir %%1}/jre/lib/%{archinstall}/libjsoundalsa.so
+%{_jvmdir}/%{sdkdir %%1}/jre/lib/aarch32/libjsoundalsa.so
+%{_jvmdir}/%{sdkdir %%1}/jre/lib/%{archinstall}/libsplashscreen.so
+%{_jvmdir}/%{sdkdir %%1}/jre/lib/aarch32/libsplashscreen.so
+%{_jvmdir}/%{sdkdir %%1}/jre/lib/%{archinstall}/libawt_xawt.so
+%{_jvmdir}/%{sdkdir %%1}/jre/lib/aarch32/libawt_xawt.so
+%{_jvmdir}/%{sdkdir %%1}/jre/lib/%{archinstall}/libjawt.so
+%{_jvmdir}/%{sdkdir %%1}/jre/lib/aarch32/libjawt.so
+%{_jvmdir}/%{sdkdir %%1}/jre/bin/policytool
}
@@ -556,16 +564,32 @@ exit 0
%dir %{_jvmdir}/%{sdkdir %%1}
%{_jvmdir}/%{jrelnk %%1}
%{_jvmjardir}/%{jrelnk %%1}
-%{_jvmprivdir}/*
%{jvmjardir %%1}
+%{_jvmprivdir}/*
%dir %{_jvmdir}/%{jredir %%1}/lib/security
%{_jvmdir}/%{jredir %%1}/lib/security/cacerts
-%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/US_export_policy.jar
-%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/local_policy.jar
+%dir %{_jvmdir}/%{jredir -- %%1}
+%dir %{_jvmdir}/%{jredir -- %%1}/bin
+%dir %{_jvmdir}/%{jredir -- %%1}/lib
+%{_jvmdir}/%{jredir %%1}/bin/java
+%{_jvmdir}/%{jredir %%1}/bin/jjs
+%{_jvmdir}/%{jredir %%1}/bin/keytool
+%{_jvmdir}/%{jredir %%1}/bin/orbd
+%{_jvmdir}/%{jredir %%1}/bin/pack200
+%{_jvmdir}/%{jredir %%1}/bin/rmid
+%{_jvmdir}/%{jredir %%1}/bin/rmiregistry
+%{_jvmdir}/%{jredir %%1}/bin/servertool
+%{_jvmdir}/%{jredir %%1}/bin/tnameserv
+%{_jvmdir}/%{jredir %%1}/bin/unpack200
+%config(noreplace) %{_jvmdir}/%{jredir
%%1}/lib/security/policy/unlimited/US_export_policy.jar
+%config(noreplace) %{_jvmdir}/%{jredir
%%1}/lib/security/policy/unlimited/local_policy.jar
+%config(noreplace) %{_jvmdir}/%{jredir
%%1}/lib/security/policy/limited/US_export_policy.jar
+%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/policy/limited/local_policy.jar
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/java.policy
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/java.security
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/blacklisted.certs
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/logging.properties
+%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/calendars.properties
%{_mandir}/man1/java-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jjs-%{uniquesuffix %%1}.1*
%{_mandir}/man1/keytool-%{uniquesuffix %%1}.1*
@@ -588,6 +612,104 @@ exit 0
%endif
%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/server/
%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/client/
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/client/
+%dir %{_jvmdir}/%{jredir -- %%1}/lib/%{archinstall}
+%dir %{_jvmdir}/%{jredir -- %%1}/lib/aarch32
+%dir %{_jvmdir}/%{jredir -- %%1}/lib/aarch32/jli
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/jli
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/jli/libjli.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/jli/libjli.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/jvm.cfg
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/jvm.cfg
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libattach.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libattach.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libawt.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libawt.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libawt_headless.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libawt_headless.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libdt_socket.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libdt_socket.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libfontmanager.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libfontmanager.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libhprof.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libhprof.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libinstrument.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libinstrument.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libj2gss.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libj2gss.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libj2pcsc.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libj2pcsc.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libj2pkcs11.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libj2pkcs11.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libjaas_unix.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libjaas_unix.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libjava.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libjava.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libjava_crw_demo.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libjava_crw_demo.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libjavajpeg.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libjavajpeg.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libjdwp.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libjdwp.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libjsdt.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libjsdt.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libjsig.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libjsig.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libjsound.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libjsound.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/liblcms.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/liblcms.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libmanagement.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libmanagement.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libmlib_image.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libmlib_image.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libnet.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libnet.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libnio.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libnio.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libnpt.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libnpt.so
+%ifarch x86_64 %{ix86} %{aarch64}
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libsaproc.so
+%endif
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libsctp.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libsctp.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libsunec.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libsunec.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libunpack.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libunpack.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libverify.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libverify.so
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libzip.so
+%{_jvmdir}/%{jredir %%1}/lib/aarch32/libzip.so
+%{_jvmdir}/%{jredir %%1}/lib/charsets.jar
+%{_jvmdir}/%{jredir %%1}/lib/classlist
+%{_jvmdir}/%{jredir %%1}/lib/content-types.properties
+%{_jvmdir}/%{jredir %%1}/lib/currency.data
+%{_jvmdir}/%{jredir %%1}/lib/flavormap.properties
+%{_jvmdir}/%{jredir %%1}/lib/hijrah-config-umalqura.properties
+%{_jvmdir}/%{jredir %%1}/lib/images/cursors/*
+%{_jvmdir}/%{jredir %%1}/lib/jce.jar
+%{_jvmdir}/%{jredir %%1}/lib/jexec
+%{_jvmdir}/%{jredir %%1}/lib/jsse.jar
+%{_jvmdir}/%{jredir %%1}/lib/jvm.hprof.txt
+%{_jvmdir}/%{jredir %%1}/lib/meta-index
+%{_jvmdir}/%{jredir %%1}/lib/net.properties
+%{_jvmdir}/%{jredir %%1}/lib/psfont.properties.ja
+%{_jvmdir}/%{jredir %%1}/lib/psfontj2d.properties
+%{_jvmdir}/%{jredir %%1}/lib/resources.jar
+%{_jvmdir}/%{jredir %%1}/lib/rt.jar
+%{_jvmdir}/%{jredir %%1}/lib/sound.properties
+%{_jvmdir}/%{jredir %%1}/lib/tzdb.dat
+%{_jvmdir}/%{jredir %%1}/lib/management-agent.jar
+%{_jvmdir}/%{jredir %%1}/lib/management/*
+%{_jvmdir}/%{jredir %%1}/lib/cmm/*
+%{_jvmdir}/%{jredir %%1}/lib/ext/*
+%dir %{_jvmdir}/%{jredir -- %%1}/lib/images
+%dir %{_jvmdir}/%{jredir -- %%1}/lib/images/cursors
+%dir %{_jvmdir}/%{jredir -- %%1}/lib/management
+%dir %{_jvmdir}/%{jredir -- %%1}/lib/cmm
+%dir %{_jvmdir}/%{jredir -- %%1}/lib/ext
}
%global files_devel() %{expand:
@@ -598,9 +720,59 @@ exit 0
%dir %{_jvmdir}/%{sdkdir %%1}/bin
%dir %{_jvmdir}/%{sdkdir %%1}/include
%dir %{_jvmdir}/%{sdkdir %%1}/lib
-%{_jvmdir}/%{sdkdir %%1}/bin/*
+%{_jvmdir}/%{sdkdir %%1}/bin/appletviewer
+%{_jvmdir}/%{sdkdir %%1}/bin/extcheck
+%{_jvmdir}/%{sdkdir %%1}/bin/idlj
+%{_jvmdir}/%{sdkdir %%1}/bin/jar
+%{_jvmdir}/%{sdkdir %%1}/bin/jarsigner
+%{_jvmdir}/%{sdkdir %%1}/bin/java
+%{_jvmdir}/%{sdkdir %%1}/bin/javac
+%{_jvmdir}/%{sdkdir %%1}/bin/javadoc
+%{_jvmdir}/%{sdkdir %%1}/bin/javah
+%{_jvmdir}/%{sdkdir %%1}/bin/javap
+%{_jvmdir}/%{sdkdir %%1}/bin/java-rmi.cgi
+%{_jvmdir}/%{sdkdir %%1}/bin/jcmd
+%{_jvmdir}/%{sdkdir %%1}/bin/jconsole
+%{_jvmdir}/%{sdkdir %%1}/bin/jdb
+%{_jvmdir}/%{sdkdir %%1}/bin/jdeps
+%{_jvmdir}/%{sdkdir %%1}/bin/jhat
+%{_jvmdir}/%{sdkdir %%1}/bin/jinfo
+%{_jvmdir}/%{sdkdir %%1}/bin/jjs
+%{_jvmdir}/%{sdkdir %%1}/bin/jmap
+%{_jvmdir}/%{sdkdir %%1}/bin/jps
+%{_jvmdir}/%{sdkdir %%1}/bin/jrunscript
+%{_jvmdir}/%{sdkdir %%1}/bin/jsadebugd
+%{_jvmdir}/%{sdkdir %%1}/bin/jstack
+%{_jvmdir}/%{sdkdir %%1}/bin/jstat
+%{_jvmdir}/%{sdkdir %%1}/bin/jstatd
+%{_jvmdir}/%{sdkdir %%1}/bin/keytool
+%{_jvmdir}/%{sdkdir %%1}/bin/native2ascii
+%{_jvmdir}/%{sdkdir %%1}/bin/orbd
+%{_jvmdir}/%{sdkdir %%1}/bin/pack200
+%{_jvmdir}/%{sdkdir %%1}/bin/policytool
+%{_jvmdir}/%{sdkdir %%1}/bin/rmic
+%{_jvmdir}/%{sdkdir %%1}/bin/rmid
+%{_jvmdir}/%{sdkdir %%1}/bin/rmiregistry
+%{_jvmdir}/%{sdkdir %%1}/bin/schemagen
+%{_jvmdir}/%{sdkdir %%1}/bin/serialver
+%{_jvmdir}/%{sdkdir %%1}/bin/servertool
+%{_jvmdir}/%{sdkdir %%1}/bin/tnameserv
+%{_jvmdir}/%{sdkdir %%1}/bin/unpack200
+%{_jvmdir}/%{sdkdir %%1}/bin/wsgen
+%{_jvmdir}/%{sdkdir %%1}/bin/wsimport
+%{_jvmdir}/%{sdkdir %%1}/bin/xjc
%{_jvmdir}/%{sdkdir %%1}/include/*
-%{_jvmdir}/%{sdkdir %%1}/lib/*
+%{_jvmdir}/%{sdkdir %%1}/lib/aarch32
+%{_jvmdir}/%{sdkdir %%1}/lib/ct.sym
+%{_jvmdir}/%{sdkdir %%1}/lib/ir.idl
+%{_jvmdir}/%{sdkdir %%1}/lib/jconsole.jar
+%{_jvmdir}/%{sdkdir %%1}/lib/orb.idl
+%ifarch x86_64 %{ix86}
+%{_jvmdir}/%{sdkdir %%1}/lib/sa-jdi.jar
+%endif
+%{_jvmdir}/%{sdkdir %%1}/lib/dt.jar
+%{_jvmdir}/%{sdkdir %%1}/lib/jexec
+%{_jvmdir}/%{sdkdir %%1}/lib/tools.jar
%{_jvmjardir}/%{sdkdir %%1}
%{_datadir}/applications/*jconsole%1.desktop
%{_mandir}/man1/appletviewer-%{uniquesuffix %%1}.1*
@@ -709,7 +881,7 @@ Requires: lksctp-tools%{?_isa}
Requires: nss%{?_isa} %{NSS_BUILDTIME_VERSION}
Requires: nss-softokn%{?_isa} %{NSSSOFTOKN_BUILDTIME_VERSION}
# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum
eforce it, not rpm transaction and so no configs are persisted when pure rpm -u is run. I
t may be consiedered as regression
-Requires: copy-jdk-configs >= 2.2
+Requires: copy-jdk-configs >= 3.3
OrderWithRequires: copy-jdk-configs
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
@@ -909,12 +1081,14 @@ Patch512: no_strict_overflow.patch
# 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
# PR2934: SunEC provider throwing KeyException with current NSS
+# PR3479, RH1486025: ECC and NSS JVM crash
Patch513: pr1983-jdk.patch
Patch514: pr1983-root.patch
Patch515: pr2127.patch
Patch516: pr2815.patch
Patch517: pr2899.patch
Patch518: pr2934.patch
+Patch519: pr3479-rh1486025.patch
# S8150954, RH1176206, PR2866: Taking screenshots on x11 composite desktop produces wrong
result
# In progress:
http://mail.openjdk.java.net/pipermail/awt-dev/2016-March/010742.html
Patch508: rh1176206-jdk.patch
@@ -928,6 +1102,8 @@ Patch204: hotspot-remove-debuglink.patch
Patch205: dont-add-unnecessary-debug-links.patch
# Enable debug information for assembly code files
Patch206: hotspot-assembler-debuginfo.patch
+# 8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are
present
+Patch560: 8188030-pr3459-rh1484079.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
@@ -960,36 +1136,54 @@ Patch400: 8154313.patch
Patch526: 6260348-pr3066.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
Patch538: 8061305-pr3335-rh1423421.patch
-# 8181055, PR3394, RH1448880: PPC64: "mbind: Invalid argument" still seen after
8175813
-#Patch551: 8181055-pr3394-rh1448880.patch
-# 8181419, PR3413, RH1463144: Race in jdwp invoker handling may lead to crashes or
invalid results
-Patch553: 8181419-pr3413-rh1463144.patch
+
+# Patches upstream and appearing in 8u151
+# 8075484, PR3473, RH1490713: SocketInputStream.socketRead0 can hang even with soTimeout
set
+#Patch561: 8075484-pr3473-rh1490713.patch
# Patches upstream and appearing in 8u152
# 8153711, PR3313, RH1284948: [REDO] JDWP: Memory Leak: GlobalRefs never deleted when
processing invokeMethod command
-Patch535: 8153711-pr3313-rh1284948.patch
+#Patch535: 8153711-pr3313-rh1284948.patch
# 8162384, PR3122, RH1358661: Performance regression: bimorphic inlining may be bypassed
by type speculation
-Patch532: 8162384-pr3122-rh1358661.patch
+#Patch532: 8162384-pr3122-rh1358661.patch
# 8173941, PR3326: SA does not work if executable is DSO
-Patch547: 8173941-pr3326.patch
+#Patch547: 8173941-pr3326.patch
# 8175813, PR3394, RH1448880: PPC64: "mbind: Invalid argument" when
-XX:+UseNUMA is used
#Patch550: 8175813-pr3394-rh1448880.patch
-# 8179084, PR3409, RH1455694: HotSpot VM fails to start when AggressiveHeap is set
-Patch552: 8179084-pr3409-rh1455694.patch
# 8175887, PR3415: C1 value numbering handling of Unsafe.get*Volatile is incorrect
-Patch554: 8175887-pr3415.patch
+#Patch554: 8175887-pr3415.patch
+
+# Patches upstream and appearing in 8u161
+# 8164293, PR3412, RH1459641: HotSpot leaking memory in long-running requests
+#Patch555: 8164293-pr3412-rh1459641.patch
+
+# Patches upstream and appearing in 8u162
+# 8181055, PR3394, RH1448880: PPC64: "mbind: Invalid argument" still seen after
8175813
+# Patch551: 8181055-pr3394-rh1448880.patch
+# 8181419, PR3413, RH1463144: Race in jdwp invoker handling may lead to crashes or
invalid results
+# Patch553: 8181419-pr3413-rh1463144.patch
+# 8145913, PR3466, RH1498309: PPC64: add Montgomery multiply intrinsic
+# Patch556: 8145913-pr3466-rh1498309.patch
+# 8168318, PR3466, RH1498320: PPC64: Use cmpldi instead of li/cmpld
+# Patch557: 8168318-pr3466-rh1498320.patch
+# 8170328, PR3466, RH1498321: PPC64: Use andis instead of lis/and
+# Patch558: 8170328-pr3466-rh1498321.patch
+# 8181810, PR3466, RH1498319: PPC64: Leverage extrdi for bitfield extract
+# Patch559: 8181810-pr3466-rh1498319.patch
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
# custom securities
Patch207: PR3183.patch
+# ustreamed aarch64 fixes
+#Patch208: aarch64BuildFailure.patch
+#Patch209: 8035496-hotspot.patch
+#Patch210: suse_linuxfilestore.patch
# Local fixes
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
Patch525: pr1834-rh1022017.patch
-# RH1367357: lcms2: Out-of-bounds read in Type_MLU_Read()
-Patch533: rh1367357.patch
# Turn on AssumeMP by default on RHEL systems
#Patch534: always_assumemp.patch
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
@@ -1027,7 +1221,7 @@ 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}
+%if ! 0%{?fedora} && 0%{?rhel} <= 7
BuildRequires: java-1.7.0-openjdk-devel
%else
BuildRequires: java-1.8.0-openjdk-aarch32-devel
@@ -1336,6 +1530,9 @@ sh %{SOURCE12}
%patch205
%patch206
%patch207
+#%patch208
+#%patch209
+#%patch210
%patch1
%patch3
@@ -1370,30 +1567,43 @@ sh %{SOURCE12}
%patch516
%patch517
%patch518
+%patch519
%patch400
%patch523
%patch526
%patch528
-%patch532
-%patch535
+#%patch532
+#%patch535
%patch538
-%patch547
+#%patch547
#%patch550
#%patch551
-%patch552
-%patch553
-%patch554
+#%patch553
+#%patch555
+%patch560
+#%patch561
+
+# PPC64 updates
+#%patch556
+#%patch557
+#%patch558
+#%patch559
# RPM-only fixes
%patch525
-%patch533
%patch539
# RHEL-only patches
-%if 0%{?rhel}
+%if ! 0%{?fedora} && 0%{?rhel} <= 7
%patch534
%endif
+# 8175887 was added to the Shenandoah HotSpot ahead of time
+%if %{use_shenandoah_hotspot}
+%else
+#%patch554
+%endif
+
%patch1000
# Extract systemtap tapsets
@@ -1688,6 +1898,7 @@ pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir
$suffix}/lib/%{archinstall}/
libunpack.so \
libverify.so \
libzip.so \
+ jvm.cfg \
; do ln -sf ../aarch32/$lib ; done
popd
@@ -1810,49 +2021,6 @@ done
# See
https://bugzilla.redhat.com/show_bug.cgi?id=741821
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs
-# Find JRE directories.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix} -type d \
- | grep -v jre/lib/security \
- | sed 's|'$RPM_BUILD_ROOT'|%dir |' \
- > %{name}.files-headless"$suffix"
-# Find JRE files.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix} -type f -o -type l \
- | grep -v jre/lib/security \
- | sed 's|'$RPM_BUILD_ROOT'||' \
- > %{name}.files.all"$suffix"
-#split %%{name}.files to %%{name}.files-headless and %%{name}.files
-#see
https://bugzilla.redhat.com/show_bug.cgi?id=875408
-NOT_HEADLESS=\
-"%{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libjsoundalsa.so
-%{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libpulse-java.so
-%{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libsplashscreen.so
-%{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libawt_xawt.so
-%{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libjawt.so
-%{_jvmdir}/%{uniquesuffix $suffix}/jre/bin/policytool"
-#filter %%{name}.files from %%{name}.files.all to %%{name}.files-headless
-ALL=`cat %{name}.files.all"$suffix"`
-for file in $ALL ; do
- INLCUDE="NO" ;
- for blacklist in $NOT_HEADLESS ; do
-#we can not match normally, because rpmbuild will evaluate !0 result as script failure
- q=`expr match "$file" "$blacklist"` || :
- l=`expr length "$blacklist"` || :
- if [ $q -eq $l ]; then
- INLCUDE="YES" ;
- fi;
-done
-if [ "x$INLCUDE" = "xNO" ]; then
- echo "$file" >> %{name}.files-headless"$suffix"
-else
- echo "$file" >> %{name}.files"$suffix"
-fi
-done
-# Find demo directories.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
- $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/sample -type d \
- | sed 's|'$RPM_BUILD_ROOT'|%dir |' \
- > %{name}-demo.files"$suffix"
-
# FIXME: remove SONAME entries from demo DSOs. See
#
https://bugzilla.redhat.com/show_bug.cgi?id=436497
@@ -1872,7 +2040,6 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
| sed 's|^|%doc |' \
> %{name}-demo.files"$suffix"
-# intentionally after the files generation, as it goes to separate package
# Create links which leads to separately installed java-atk-bridge and allow
configuration
# links points to java-atk-wrapper - an dependence
pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}
@@ -2052,7 +2219,7 @@ require "copy_jdk_configs.lua"
%endif
%if %{include_normal_build}
-%files -f %{name}.files
+%files
# main package builds always
%{files_jre %{nil}}
%else
@@ -2062,7 +2229,7 @@ require "copy_jdk_configs.lua"
%if %{include_normal_build}
-%files headless -f %{name}.files-headless
+%files headless
# important note, see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
# all config/norepalce files (and more) have to be declared in pretrans. See pretrans
%{files_jre_headless %{nil}}
@@ -2093,10 +2260,10 @@ require "copy_jdk_configs.lua"
%endif
%if %{include_debug_build}
-%files debug -f %{name}.files-debug
+%files debug
%{files_jre %{debug_suffix_unquoted}}
-%files headless-debug -f %{name}.files-headless-debug
+%files headless-debug
%{files_jre_headless %{debug_suffix_unquoted}}
%files devel-debug
@@ -2126,7 +2293,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Thu Sep 7 2017 Alex Kashchenko <akashche(a)redhat.com> - 1:1.8.0.144-1.170809
+* Wed Nov 15 2017 Alex Kashchenko <akashche(a)redhat.com> - 1:1.8.0.152-1.171102
+- update sources to 8u152
+- sync with mainline package
+
+* Thu Sep 7 2017 Alex Kashchenko <akashche(a)redhat.com> - 1:1.8.0.144-1.170809
- update sources to 8u144
* Mon Jul 24 2017 Alex Kashchenko <akashche(a)redhat.com> - 1:1.8.0.141-1.170721
diff --git a/java-1.8.0-openjdk-remove-intree-libraries.sh
b/java-1.8.0-openjdk-remove-intree-libraries.sh
index 1f022f6..879d462 100644
--- a/java-1.8.0-openjdk-remove-intree-libraries.sh
+++ b/java-1.8.0-openjdk-remove-intree-libraries.sh
@@ -1,10 +1,10 @@
#!/bin/sh
-ZIP_SRC=jdk8/jdk/src/share/native/java/util/zip/zlib-*
-JPEG_SRC=jdk8/jdk/src/share/native/sun/awt/image/jpeg
-GIF_SRC=jdk8/jdk/src/share/native/sun/awt/giflib
-PNG_SRC=jdk8/jdk/src/share/native/sun/awt/libpng
-LCMS_SRC=jdk8/jdk/src/share/native/sun/java2d/cmm/lcms
+ZIP_SRC=openjdk/jdk/src/share/native/java/util/zip/zlib
+JPEG_SRC=openjdk/jdk/src/share/native/sun/awt/image/jpeg
+GIF_SRC=openjdk/jdk/src/share/native/sun/awt/giflib
+PNG_SRC=openjdk/jdk/src/share/native/sun/awt/libpng
+LCMS_SRC=openjdk/jdk/src/share/native/sun/java2d/cmm/lcms
echo "Removing built-in libs (they will be linked)"
diff --git a/pr2842-01.patch b/pr2842-01.patch
index 4ee4c55..faaa309 100644
--- a/pr2842-01.patch
+++ b/pr2842-01.patch
@@ -7,16 +7,16 @@
8031668, PR2842: TOOLCHAIN_FIND_COMPILER unexpectedly resolves symbolic links
Reviewed-by: erikj, ihse
-diff -r f0635543beb3 -r 842cc183c9f6 common/autoconf/toolchain.m4
---- openjdk/./common/autoconf/toolchain.m4 Wed Jan 27 02:50:07 2016 +0000
-+++ openjdk/./common/autoconf/toolchain.m4 Tue Jan 14 10:25:22 2014 -0800
-@@ -188,8 +188,8 @@
+diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
+--- openjdk///common/autoconf/toolchain.m4
++++ openjdk///common/autoconf/toolchain.m4
+@@ -230,8 +230,8 @@
$1="$PROPER_COMPILER_$1"
else
AC_MSG_RESULT([no, keeping $1])
- $1="$TEST_COMPILER"
fi
+
- TOOLCHAIN_CHECK_COMPILER_VERSION([$1], [$COMPILER_NAME])
+ TOOLCHAIN_EXTRACT_COMPILER_VERSION([$1], [$COMPILER_NAME])
])
diff --git a/pr2842-02.patch b/pr2842-02.patch
index f5268fc..1812e19 100644
--- a/pr2842-02.patch
+++ b/pr2842-02.patch
@@ -7,10 +7,10 @@
8148351, PR2842: Only display resolved symlink for compiler, do not change path
Reviewed-by: erikj
-diff -r 5096b6468914 common/autoconf/toolchain.m4
---- openjdk/./common/autoconf/toolchain.m4 Tue Jan 14 10:25:22 2014 -0800
-+++ openjdk/./common/autoconf/toolchain.m4 Fri Feb 05 20:02:15 2016 +0000
-@@ -147,38 +147,22 @@
+diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
+--- openjdk///common/autoconf/toolchain.m4
++++ openjdk///common/autoconf/toolchain.m4
+@@ -198,38 +198,22 @@
fi
BASIC_FIXUP_EXECUTABLE($1)
TEST_COMPILER="[$]$1"
@@ -62,4 +62,4 @@ diff -r 5096b6468914 common/autoconf/toolchain.m4
+ fi
fi
- TOOLCHAIN_CHECK_COMPILER_VERSION([$1], [$COMPILER_NAME])
+ TOOLCHAIN_EXTRACT_COMPILER_VERSION([$1], [$COMPILER_NAME])
diff --git a/pr2974-rh1337583.patch b/pr2974-rh1337583.patch
index 5c00050..4859ca6 100644
--- a/pr2974-rh1337583.patch
+++ b/pr2974-rh1337583.patch
@@ -7,9 +7,9 @@
PR2974: PKCS#10 certificate requests now use CRLF line endings rather than system line
endings
Summary: Add -systemlineendings option to keytool to allow system line endings to be used
again.
-diff -r 0be28a33e12d -r 794541fbbdc3 src/share/classes/sun/security/pkcs10/PKCS10.java
---- openjdk/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java Tue Dec 29 10:40:43
2015 -0500
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java Fri May 27 03:28:35
2016 +0100
+diff --git a/src/share/classes/sun/security/pkcs10/PKCS10.java
b/src/share/classes/sun/security/pkcs10/PKCS10.java
+--- openjdk/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java
@@ -30,6 +30,7 @@
import java.io.IOException;
import java.math.BigInteger;
@@ -41,7 +41,7 @@ diff -r 0be28a33e12d -r 794541fbbdc3
src/share/classes/sun/security/pkcs10/PKCS1
/**
* Constructs an unsigned PKCS #10 certificate request. Before this
* request may be used, it must be encoded and signed. Then it
-@@ -286,13 +296,39 @@
+@@ -293,13 +303,39 @@
*/
public void print(PrintStream out)
throws IOException, SignatureException {
@@ -83,10 +83,10 @@ diff -r 0be28a33e12d -r 794541fbbdc3
src/share/classes/sun/security/pkcs10/PKCS1
out.println("-----END NEW CERTIFICATE REQUEST-----");
}
-diff -r 0be28a33e12d -r 794541fbbdc3
src/share/classes/sun/security/tools/keytool/Main.java
---- openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java Tue Dec 29
10:40:43 2015 -0500
-+++ openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java Fri May 27
03:28:35 2016 +0100
-@@ -117,6 +117,7 @@
+diff --git a/src/share/classes/sun/security/tools/keytool/Main.java
b/src/share/classes/sun/security/tools/keytool/Main.java
+--- openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java
++++ openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java
+@@ -124,6 +124,7 @@
private String infilename = null;
private String outfilename = null;
private String srcksfname = null;
@@ -94,7 +94,7 @@ diff -r 0be28a33e12d -r 794541fbbdc3
src/share/classes/sun/security/tools/keytoo
// User-specified providers are added before any command is called.
// However, they are not removed before the end of the main() method.
-@@ -163,7 +164,7 @@
+@@ -186,7 +187,7 @@
CERTREQ("Generates.a.certificate.request",
ALIAS, SIGALG, FILEOUT, KEYPASS, KEYSTORE, DNAME,
STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS,
@@ -103,7 +103,7 @@ diff -r 0be28a33e12d -r 794541fbbdc3
src/share/classes/sun/security/tools/keytoo
CHANGEALIAS("Changes.an.entry.s.alias",
ALIAS, DESTALIAS, KEYPASS, KEYSTORE, STOREPASS,
STORETYPE, PROVIDERNAME, PROVIDERCLASS, PROVIDERARG,
-@@ -296,6 +297,7 @@
+@@ -319,6 +320,7 @@
STARTDATE("startdate", "<startdate>",
"certificate.validity.start.date.time"),
STOREPASS("storepass", "<arg>",
"keystore.password"),
STORETYPE("storetype", "<storetype>",
"keystore.type"),
@@ -111,7 +111,7 @@ diff -r 0be28a33e12d -r 794541fbbdc3
src/share/classes/sun/security/tools/keytoo
TRUSTCACERTS("trustcacerts", null,
"trust.certificates.from.cacerts"),
V("v", null, "verbose.output"),
VALIDITY("validity", "<valDays>",
"validity.number.of.days");
-@@ -537,6 +539,8 @@
+@@ -559,6 +561,8 @@
protectedPath = true;
} else if (collator.compare(flags, "-srcprotected") == 0) {
srcprotectedPath = true;
@@ -120,23 +120,23 @@ diff -r 0be28a33e12d -r 794541fbbdc3
src/share/classes/sun/security/tools/keytoo
} else {
System.err.println(rb.getString("Illegal.option.") + flags);
tinyHelp();
-@@ -1335,7 +1339,7 @@
+@@ -1463,7 +1467,7 @@
// Sign the request and base-64 encode it
request.encodeAndSign(subject, signature);
- request.print(out);
+ request.print(out, systemLineEndings);
- }
- /**
-@@ -4191,4 +4195,3 @@
+ checkWeak(rb.getString("the.generated.certificate.request"),
request);
+ }
+@@ -4540,4 +4544,3 @@
return new Pair<>(a,b);
}
}
-
-diff -r 0be28a33e12d -r 794541fbbdc3
src/share/classes/sun/security/tools/keytool/Resources.java
---- openjdk/jdk/src/share/classes/sun/security/tools/keytool/Resources.java Tue Dec 29
10:40:43 2015 -0500
-+++ openjdk/jdk/src/share/classes/sun/security/tools/keytool/Resources.java Fri May 27
03:28:35 2016 +0100
+diff --git a/src/share/classes/sun/security/tools/keytool/Resources.java
b/src/share/classes/sun/security/tools/keytool/Resources.java
+--- openjdk/jdk/src/share/classes/sun/security/tools/keytool/Resources.java
++++ openjdk/jdk/src/share/classes/sun/security/tools/keytool/Resources.java
@@ -168,6 +168,8 @@
"keystore password"}, //-storepass
{"keystore.type",
diff --git a/pr3479-rh1486025.patch b/pr3479-rh1486025.patch
new file mode 100644
index 0000000..14c693b
--- /dev/null
+++ b/pr3479-rh1486025.patch
@@ -0,0 +1,67 @@
+# HG changeset patch
+# User andrew
+# Date 1508194072 -3600
+# Mon Oct 16 23:47:52 2017 +0100
+# Node ID 5dcb55da00c1531264934559c9f10c2e0ae46420
+# Parent bf62c56e3604fee0018b19f65fd56c76dc156630
+PR3479, RH1486025: ECC and NSS JVM crash
+Summary: SunEC provider can have multiple instances, leading to premature NSS shutdown
+Contributed-by: Martin Balao <mbalao(a)redhat.com>
+
+diff --git a/make/mapfiles/libsunec/mapfile-vers b/make/mapfiles/libsunec/mapfile-vers
+--- openjdk/jdk/make/mapfiles/libsunec/mapfile-vers
++++ openjdk/jdk/make/mapfiles/libsunec/mapfile-vers
+@@ -32,7 +32,6 @@
+ Java_sun_security_ec_ECDSASignature_verifySignedDigest;
+ Java_sun_security_ec_ECDHKeyAgreement_deriveKey;
+ Java_sun_security_ec_SunEC_initialize;
+- Java_sun_security_ec_SunEC_cleanup;
+ local:
+ *;
+ };
+diff --git a/src/share/classes/sun/security/ec/SunEC.java
b/src/share/classes/sun/security/ec/SunEC.java
+--- openjdk/jdk/src/share/classes/sun/security/ec/SunEC.java
++++ openjdk/jdk/src/share/classes/sun/security/ec/SunEC.java
+@@ -83,21 +83,8 @@
+ }
+
+ /**
+- * Cleanup native resources during finalisation.
+- */
+- @Override
+- protected void finalize() {
+- cleanup();
+- }
+-
+- /**
+ * Initialize the native code.
+ */
+ private static native void initialize();
+
+- /**
+- * Cleanup in the native layer.
+- */
+- private static native void cleanup();
+-
+ }
+diff --git a/src/share/native/sun/security/ec/ECC_JNI.cpp
b/src/share/native/sun/security/ec/ECC_JNI.cpp
+--- openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp
++++ openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp
+@@ -525,14 +525,12 @@
+ }
+
+ JNIEXPORT void
+-JNICALL Java_sun_security_ec_SunEC_cleanup
+- (JNIEnv *env, jclass UNUSED(clazz))
++JNICALL JNI_OnUnload
++ (JavaVM *vm, void *reserved)
+ {
+ #ifdef SYSTEM_NSS
+ RNG_RNGShutdown();
+- if (SECOID_Shutdown() != SECSuccess) {
+- ThrowException(env, INTERNAL_ERROR);
+- }
++ SECOID_Shutdown();
+ #endif
+ }
+
diff --git a/repackReproduciblePolycies.sh b/repackReproduciblePolycies.sh
index 271cb74..f356bd3 100644
--- a/repackReproduciblePolycies.sh
+++ b/repackReproduciblePolycies.sh
@@ -1,13 +1,17 @@
#!/bin/sh
+set -e
#
https://bugzilla.redhat.com/show_bug.cgi?id=1142153
M=META-INF/MANIFEST.MF
-#P=/usr/lib/jvm/java/jre/lib/security
-P=$1/lib/security
+#P=/usr/lib/jvm/java/jre/lib/security/policy
+P=$1/lib/security/policy
+ERRORS=0
+ for type in unlimited limited ; do
for f in local_policy.jar US_export_policy.jar ; do
-ORIG=$P/$f
+ORIG=$P/$type/$f
echo "processing $f ($ORIG)"
if [ ! -f $ORIG ]; then
echo "File not found! $ORIG"
+ let ERRORS=$ERRORS+1
continue
fi
d=`mktemp -d`
@@ -35,3 +39,6 @@ NW=$d/$f
touch -t 201401010000 $ORIG
rm -rfv $d
done
+ done
+
+exit $ERRORS
diff --git a/rh1163501.patch b/rh1163501.patch
index 9ae18a3..99ff950 100644
--- a/rh1163501.patch
+++ b/rh1163501.patch
@@ -1,7 +1,14 @@
-diff -r e195319c3d7e src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java
---- openjdk/jdk/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java Wed Nov
09 12:38:45 2016 +0300
-+++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java Mon Dec
12 19:22:13 2016 +0000
-@@ -74,10 +74,10 @@
+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, 2017, 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
+@@ -74,10 +75,10 @@
private static void checkKeySize(int keysize)
throws InvalidParameterException {
@@ -14,10 +21,17 @@ diff -r e195319c3d7e
src/share/classes/com/sun/crypto/provider/DHKeyPairGenerato
"The specific key size " + keysize + " is not
supported");
}
}
-diff -r e195319c3d7e src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java
---- openjdk/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java Wed
Nov 09 12:38:45 2016 +0300
-+++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java Mon
Dec 12 19:22:13 2016 +0000
-@@ -60,11 +60,11 @@
+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, 2017, 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
+@@ -61,11 +62,11 @@
private static void checkKeySize(int keysize)
throws InvalidParameterException {
@@ -31,10 +45,10 @@ diff -r e195319c3d7e
src/share/classes/com/sun/crypto/provider/DHParameterGenera
"The specific key size " + keysize + " is not
supported");
}
}
-diff -r e195319c3d7e src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java
---- openjdk/jdk/src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java Wed Nov 09
12:38:45 2016 +0300
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java Mon Dec 12
19:22:13 2016 +0000
-@@ -285,11 +285,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
+@@ -292,11 +292,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
@@ -48,10 +62,17 @@ diff -r e195319c3d7e
src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.j
"The specific key size " +
keySize + " is not supported");
}
-diff -r e195319c3d7e test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java
---- openjdk/jdk/test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java Wed Nov
09 12:38:45 2016 +0300
-+++ openjdk/jdk/test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java Mon Dec
12 19:22:13 2016 +0000
-@@ -58,7 +58,7 @@
+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 @@
*/
private enum Sizes {
two56(256), three84(384), five12(512), seven68(768), ten24(1024),
@@ -60,7 +81,7 @@ diff -r e195319c3d7e
test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.
private final int intSize;
private final BigInteger bigIntValue;
-@@ -130,6 +130,19 @@
+@@ -130,6 +131,19 @@
kp = kpg.generateKeyPair();
checkKeyPair(kp, Sizes.twenty48, Sizes.five12);
diff --git a/rh1367357.patch b/rh1367357.patch
deleted file mode 100644
index 254be99..0000000
--- a/rh1367357.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/src/share/native/sun/java2d/cmm/lcms/cmstypes.c
b/src/share/native/sun/java2d/cmm/lcms/cmstypes.c
---- openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmstypes.c
-+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmstypes.c
-@@ -1484,6 +1484,7 @@
-
- // Check for overflow
- if (Offset < (SizeOfHeader + 8)) goto Error;
-+ if ((Offset + Len) > SizeOfTag + 8) goto Error;
-
- // True begin of the string
- BeginOfThisString = Offset - SizeOfHeader - 8;
diff --git a/sources b/sources
index c22982b..31d0ddf 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (systemtap-tapset-3.4.0pre01.tar.xz) =
4446fa20f88bbce53b583484bf06cb2b476c9372beb898dc2b7739eaa5c98b9979fbd72e12474fb344833d831a19366b82216ee03b452411745e6cd3527faa4e
-SHA512 (aarch32-port-jdk8u-jdk8u144-b01-aarch32-170809.tar.xz) =
8f38e2e2a4ba22b3d974c40865238e03968cce0f7878ba2babcfbc8152ed312987601caa791c97d57923b0e6aad1fd0c317e2b6aff17c20cceb9dbd8f0ba7d95
+SHA512 (aarch32-port-jdk8u-jdk8u152-b17-aarch32-171102.tar.xz) =
26e52626c4d279d4cdcdc6c4eace616ead9449372753e7d0c6e730132649347aaab8c471341421bc3b22934bddf5f5cca5e9568413b98da05f2f873eec6a20db