diff --git a/.gitignore b/.gitignore index 010e1ba..3a01a08 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz +SOURCES/aarch64-port-jdk8u-aarch64-jdk8u111-b15.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 3ceac4b..a9e203a 100644 --- a/.java-1.8.0-openjdk.metadata +++ b/.java-1.8.0-openjdk.metadata @@ -1,2 +1,2 @@ -4c11157a3c6ae41fb5345769a1f5cebd0de50d91 SOURCES/aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz +c32fc4a2f70f097b8726e396cceaad1bdad461b6 SOURCES/aarch64-port-jdk8u-aarch64-jdk8u111-b15.tar.xz 44b09844ec2e90db08d3d883993e0dbab0c1988a SOURCES/systemtap-tapset-3.1.0.tar.xz diff --git a/SOURCES/8157306-pr3121-rh1360863.patch b/SOURCES/8157306-pr3121-rh1360863.patch deleted file mode 100644 index 8cb69ae..0000000 --- a/SOURCES/8157306-pr3121-rh1360863.patch +++ /dev/null @@ -1,29 +0,0 @@ -# HG changeset patch -# User aph -# Date 1470065634 -3600 -# Mon Aug 01 16:33:54 2016 +0100 -# Node ID ee9bffb3bd390b2ad805c7b59d7d2ab8a68a4367 -# Parent ab3e0bde3c15bbba60de4decabcd70ffef657448 -8157306, PR3121: Random infrequent null pointer exceptions in javac -Reviewed-by: kvn - -diff -r ab3e0bde3c15 -r ee9bffb3bd39 src/share/vm/opto/lcm.cpp ---- openjdk/hotspot/src/share/vm/opto/lcm.cpp Tue Jul 26 04:42:03 2016 +0100 -+++ openjdk/hotspot/src/share/vm/opto/lcm.cpp Mon Aug 01 16:33:54 2016 +0100 -@@ -1090,11 +1090,14 @@ - Block *sb = block->_succs[i]; - // Clone the entire area; ignoring the edge fixup for now. - for( uint j = end; j > beg; j-- ) { -- // It is safe here to clone a node with anti_dependence -- // since clones dominate on each path. - Node *clone = block->get_node(j-1)->clone(); - sb->insert_node(clone, 1); - map_node_to_block(clone, sb); -+#ifdef AARCH64 -+ if (clone->needs_anti_dependence_check()) { -+ insert_anti_dependences(sb, clone); -+ } -+#endif - } - } - diff --git a/SOURCES/always_assumemp.patch b/SOURCES/always_assumemp.patch new file mode 100644 index 0000000..b0a874d --- /dev/null +++ b/SOURCES/always_assumemp.patch @@ -0,0 +1,12 @@ +diff --git a/src/share/vm/runtime/globals.hpp b/src/share/vm/runtime/globals.hpp +--- openjdk/hotspot/src/share/vm/runtime/globals.hpp ++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp +@@ -530,7 +530,7 @@ + lp64_product(intx, ObjectAlignmentInBytes, 8, \ + "Default object alignment in bytes, 8 is minimum") \ + \ +- product(bool, AssumeMP, false, \ ++ product(bool, AssumeMP, true, \ + "Instruct the VM to assume multiple processors are available") \ + \ + /* UseMembar is theoretically a temp flag used for memory barrier \ diff --git a/SOURCES/corba_typo_fix.patch b/SOURCES/corba_typo_fix.patch deleted file mode 100644 index 9756a8a..0000000 --- a/SOURCES/corba_typo_fix.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -r 5c43ac1f2a59 src/share/classes/javax/rmi/CORBA/Util.java ---- openjdk.orig/corba/src/share/classes/javax/rmi/CORBA/Util.java Fri Jul 01 04:11:22 2016 +0100 -+++ openjdk/corba/src/share/classes/javax/rmi/CORBA/Util.java Mon Jul 04 16:04:39 2016 +0100 -@@ -413,8 +413,18 @@ - // check that a serialization permission has been - // set to allow the loading of the Util delegate - // which provides access to custom ValueHandler -- sm.checkPermission(new SerializablePermission( -- "enableCustomValueHanlder")); -+ try { -+ sm.checkPermission(new SerializablePermission( -+ "enableCustomValueHandler")); -+ } catch (SecurityException ex1) { -+ // Fallback: See if the permission is mis-spelt -+ try { -+ sm.checkPermission(new SerializablePermission( -+ "enableCustomValueHanlder")); -+ } catch (SecurityException ex2) { -+ throw ex1; // Throw original exception -+ } -+ } - } - } - } diff --git a/SOURCES/rh1367357.patch b/SOURCES/rh1367357.patch new file mode 100644 index 0000000..254be99 --- /dev/null +++ b/SOURCES/rh1367357.patch @@ -0,0 +1,11 @@ +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/SPECS/java-1.8.0-openjdk.spec b/SPECS/java-1.8.0-openjdk.spec index 0af647e..ab1e0ea 100644 --- a/SPECS/java-1.8.0-openjdk.spec +++ b/SPECS/java-1.8.0-openjdk.spec @@ -20,8 +20,15 @@ %global build_loop1 %{nil} %endif -# by default we build debug build during main build only on intel arches -%ifarch %{ix86} x86_64 +%global aarch64 aarch64 arm64 armv8 +# sometimes we need to distinguish big and little endian PPC64 +%global ppc64le ppc64le +%global ppc64be ppc64 ppc64p7 +%global multilib_arches %{power64} sparc64 x86_64 +%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} + +# By default, we build a debug build during main build on JIT architectures +%ifarch %{jit_arches} %global include_debug_build 1 %else %global include_debug_build 0 @@ -51,12 +58,6 @@ %global targets all %endif -%global aarch64 aarch64 arm64 armv8 -# sometimes we need to distinguish big and little endian PPC64 -%global ppc64le ppc64le -%global ppc64be ppc64 ppc64p7 -%global multilib_arches %{power64} sparc64 x86_64 -%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} %ifarch %{aarch64} # Disable hardened build on AArch64 as it didn't bootcycle @@ -156,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-jdk8u102-b14 +%global revision aarch64-jdk8u111-b15 # 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 @@ -240,7 +241,8 @@ if [ "$1" -gt 1 ]; then "${sum}" = '400cc64d4dd31f36dc0cc2c701d603db' -o \\ "${sum}" = '321342219bb130d238ff144b9e5dbfc1' -o \\ "${sum}" = '134a37a84983b620f4d8d51a550c0c38' -o \\ - "${sum}" = '5ea976e209d0d0b5b6ab148416123e02' ]; then + "${sum}" = '5ea976e209d0d0b5b6ab148416123e02' -o \\ + "${sum}" = '5ab4c77cf14fbd7f7ee6f51a7a73d88c' ]; then if [ -f "${javasecurity}.rpmnew" ]; then mv -f "${javasecurity}.rpmnew" "${javasecurity}" fi @@ -780,7 +782,7 @@ OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release} Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 4.%{buildver}%{?dist} +Release: 2.%{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 @@ -800,7 +802,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-jdk8u102-b14 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION} +# VERSION=aarch64-jdk8u111-b15 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 @@ -903,8 +905,6 @@ Patch507: pr2842-02.patch Patch400: 8154313.patch # S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate Patch526: 6260348-pr3066.patch -# S8157306, PR3121, RH1360863: Random infrequent null pointer exceptions in javac -Patch531: 8157306-pr3121-rh1360863.patch # S8162384, PR3122, RH1358661: Performance regression: bimorphic inlining may be bypassed by type speculation Patch532: 8162384-pr3122-rh1358661.patch @@ -929,8 +929,10 @@ Patch201: system-libjpeg.patch # Local fixes # PR1834, RH1022017: Reduce curves reported by SSL to those in NSS Patch525: pr1834-rh1022017.patch -# Temporary fix for typo in CORBA security patch -Patch529: corba_typo_fix.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 # Non-OpenJDK fixes @@ -1252,9 +1254,13 @@ sh %{SOURCE12} %patch526 %patch527 %patch528 -%patch529 -%patch531 %patch532 +%patch533 + +# RHEL-only patches +%if 0%{?rhel} +%patch534 +%endif # Extract systemtap tapsets %if %{with_systemtap} @@ -1848,6 +1854,25 @@ require "copy_jdk_configs.lua" %endif %changelog +* 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 + +* Fri Oct 07 2016 Andrew Hughes - 1:1.8.0.111-1.b15 +- Update to aarch64-jdk8u111-b15, with AArch64 fix for S8160591. +- Resolves: rhbz#1382736 + +* Fri Oct 07 2016 Andrew Hughes - 1:1.8.0.111-0.b14 +- Update to aarch64-jdk8u111-b14. +- Add latest md5sum for java.security file due to jar signing property addition. +- Drop S8157306 and the CORBA typo fix, both of which appear upstream in u111. +- Add LCMS 2 patch to fix Red Hat security issue RH1367357 in the local OpenJDK copy. +- Resolves: rhbz#1350037 + +* Wed Oct 5 2016 Jiri Vanek - 1:1.8.0.102-5.b14 +- debug subpackages allowed on aarch64 and ppc64le +- Resolves: rhbz#1375224 + * Wed Sep 14 2016 Andrew Hughes - 1:1.8.0.102-4.b14 - Runtime native library requirements need to match the architecture of the JDK - Resolves: rhbz#1375224